The phrase "FBCDN image is not allowed in stream" does not have much meaning to most of the natural world, but to a developer integrating with Facebook features this phrase is a nightmare. Over the past year we have been developing iPhone apps that will process images in unique ways. We thought it would be interesting to allow users to share these images with their friends on Facebook, if they have any friends. The normal procedure is a two part process. First, a user would upload the image to their very own photo gallery hosted on their Facebook profile. When that is successful the user could then choose to publish a message to their stream which would include a link to this recently uploaded image. It was fast and it was fun.
About two weeks ago I noticed that some previously published feeds, and any new feeds, were missing the shared photo. Immediately I thought there must be a problem with the code. Let me take a look. HMMMMMMM. Everything looks good, but why is the image missing? Wow, I don't have much time to continue debugging this. Let me check Facebook Developer Documentation. Nothing here about missing images.On the 17th of June 2010 the shock was felt. I was testing a new iPhone app we are working on for in20years.com. The Facebook integration was complete and I attempted to publish a message to my Facebook profile using a Facebook Photo Gallery image. The process came to a halt and the dialog read, "FBCDN image is not allowed in stream ..... You can see this because you are one of the developers of the app." Ouch. I could indeed see this message and yet I have no idea what it means. Endless Google searches return nothing.With shifting priorities in schedule we decided to let this go for the weekend. Monday morning was a bit more informative. Facebook Developer Forums erupted in outrage that all existing apps ceased to work due to this error. The official word came through an RSS feed reading:Serving Images in Stream StoriesJun 18, 2010 3:21pmWe no longer allow stream stories to contain images that are hosted on the fbcdn.net domain. The images associated with these URLs aren't always optimized for stream stories and occasionally resulted in errors, leading to a poor user experience. Make sure your stream attachments don't reference images with this domain. You should host the images locally.So what does this mean? Well it depends on your point of view. It means Facebook does not have enough consideration for current applications using images in the fbcdn.net domain to grace the developers with a warning of this new policy. I was experiencing problems for weeks before this statement was released. It means that developers cannot rely on any implementation of a Facebook API component to behave the way they expect on a day to day basis. It means that developers must find a way to host their own images if they plan on placing them in a Facebook Stream. It means we must react with Ninja-like reflexes.