My favorites | Sign in
Project Logo
       
New issue | Search
for
| Advanced search | Search tips
Issue 451: Update Background Image Works but Background Image Doesn't Show Up Unless I Click on Save Changes
17 people starred this issue and may be notified of changes. Back to list
Status:  Fixed
Owner:  m...@twitter.com
Closed:  May 13
Type-Defect
Priority-Low
Component-REST


Sign in to add a comment
 
Reported by vrforuma...@gmail.com, Apr 10, 2009
After I have run my API code, the background of my Twitter account becomes
blank. If I click on the "Save Changes" button in the "Design" tab, the
background image appears. "tile background" is unchecked.

My API code works 100% because my background image changes if I do the above. 

Why won't my background image appear automatically? Why do I need to click
on "Save Changes" for the background to appear?

Live test:

http://www.maverickwebcreations.com/twitter/twitter-background.php

My profile XML:

http://twitter.com/users/show/id.xml?screen_name=mwcreations

If you run the live test URL and check out the profile XML URL, you will
see that the background image has not been updated in the
<profile_image_url> tags.
Comment 1 by vrforuma...@gmail.com, Apr 13, 2009
Any updates on this issue??
Comment 2 by m...@twitter.com, Apr 14, 2009
Not seeing the source of twitter-background.php I can't really confirm anything about
what's not working correctly. This is what I think is going on:

1. Use the API to update the background image
  » Question: What URL do you use for this update?

2. Visit the web site and there is no background
  » Question: Do you see an old image? A blank background? If blank, what color?

3. Visit the 'Design' tab and click 'Save' (no other input)

4. New image appears


Is that correct? If so, can you asnwer the questions inline? It would help me find
out what the issues is and where it might be broken.
Owner: m...@twitter.com
Comment 3 by vrforuma...@gmail.com, Apr 14, 2009
Question: What URL do you use for this update?

http://www.maverickwebcreations.com/twitter/twitter-background.php

It grabs a random image from the
http://www.maverickwebcreations.com/twitter/images/backgrounds/ folder and uploads it
to Twitter.

Question: Do you see an old image? A blank background? If blank, what color?

I do not see any background image. Right now, I only see a light grey background
colour at my Twitter profile, which is incorrect.

This is the problem... If I go to Settings -> Design and click on "Save Changes". The
background image appears.

Here is how you can recreate this bug:

Run this URL:

http://www.maverickwebcreations.com/twitter/twitter-background.php

Take note of the file name displayed on the screen.

Go to my Twitter profile:

http://twitter.com/mwcreations

Notice there is not background image but a light grey background colour.

Check out the current Twitter background image:

http://twitter.com/users/show/id.xml?screen_name=mwcreations

The background image file is not the same as the one displayed from my script.
Comment 4 by vrforuma...@gmail.com, Apr 14, 2009
Please note that after you run my script, go to my Twitter profile and refresh it
repeatedly. I estimate it takes about 4 hours or more before the background image
appears. Maybe there is a cache or something. If I want it to be instant, I need to
click on the "Save Changes" button in "Settings" -> "Design".
Comment 5 by vrforuma...@gmail.com, Apr 15, 2009
Check out the screen video I made of this issue.

http://www.maverickwebcreations.com/2009/04/15/twitter-api-background-image-updating-bug.html
Comment 6 by m...@twitter.com, Apr 15, 2009
When asking for the URL I meant what API URL, for example:

http://twitter.com/account/update_profile_image.json

That way I know where to look for the error. The screen cast matches my understanding
of the issue and I'll work on a fix once I have a starting point. The note that it
does show up after 4 hours or so is very helpful.
Status: Accepted
Comment 7 by vrforuma...@gmail.com, Apr 15, 2009
I am using this API URL:

http://twitter.com/account/update_profile_background_image.xml
Comment 8 by m...@twitter.com, Apr 17, 2009
 Issue 473  has been merged into this issue.
Comment 9 by vrforuma...@gmail.com, Apr 19, 2009
What's the latest update on this issue?
Comment 10 by m...@twitter.com, Apr 20, 2009
I am working on this and a few other medium priority issues today and tomorrow.
Hopefully that will go well and fixes will be deployed before the end of the week.
Comment 11 by cts3e1, Apr 20, 2009
That's great news, thank you for the update
Comment 12 by alexfpayne, Apr 21, 2009
(No comment was entered for this change.)
Labels: Component-REST
Comment 13 by brian.manley, Apr 27, 2009
Any update on this? :)
Comment 14 by papa.face.adverts, Apr 27, 2009
I am also experiencing this problem. An update/solution would be greatly appreciated :)
Comment 15 by matt.parrett, Apr 27, 2009
Any updates on this? We're seeing the same thing and would be more than happy to 
provide any information that might be helpful for resolving this issue.
Comment 16 by m...@twitter.com, Apr 27, 2009
Click on the star next to the title to get emailed when this issue is updated.
Comment 17 by papa.face.adverts, May 05, 2009
Still no update pushed for this one for a month...
I'd have thought defects in the API would be fairly important to Twitters tech team...
Comment 18 by m...@twitter.com, May 05, 2009
What I nice reminder, thanks. I am working with a few different people to sort this out but it is not a trivial as 
everyone seems to think. Trust me, I'm working on it. It's not my highest priority but I am continuing to make 
progress.
Comment 19 by m...@twitter.com, May 05, 2009
(No comment was entered for this change.)
Labels: -Priority-Medium Priority-Low
Comment 20 by ChadVScira, May 05, 2009
Can we have an ETA on this? We have projects in the pipeline that are depending on
this feature. 

- Chad Scira
Comment 21 by goo...@freeflashtoys.com, May 05, 2009
Likewise, an ETA would be great. It seems the priority was lowered but we are waiting
to fully market our app until the system works 100%. Already we are having thousands
of users try to use our twitter background system and about 1 in 3 doesn't work.
Getting lots of confused users.

I completely understand you guys are working on it, which we are super thankful for!
Just hoping we can make some slight planning for our marketing. Thanks again!
Comment 23 by ChadVScira, May 08, 2009
I would suggest avoiding this API feature at all costs, If its non-functional i think
you guys should put a notice in the actual API Doc... 

http://apiwiki.twitter.com/Twitter-REST-API-Method%3A-account%C2%A0update_profile_background_image

this gives the false impression that the api request actually works as advertised. A
simple "this feature is currently not stable" message would save people hours of
frustration.

:)

- Chad Scira

Comment 24 by tobyvendetta, May 10, 2009
I am being affected by this issue as well. I know you guys have TONS to do, but an
ETA would be great for us :)
Comment 25 by m...@twitter.com, May 11, 2009
Met with the person who most recently worked on the image upload code and got some ore information. 
Working on a fix based on that feedback and testing.
Comment 26 by cts3e1, May 11, 2009
Fantastic news, thanks!
Comment 27 by ChadVScira, May 11, 2009
wonderful :)
Comment 28 by m...@twitter.com, May 12, 2009
Finished a test script to re-create the issue in our staging environment. Disproved the current working theory 
and spent a few hours trying different possible fixes. I now have a hacked-up version of our code doing the 
right thing. Working on making that more usable so it can be deployed.
Comment 29 by matt.parrett, May 12, 2009
Just had a strange thing happen with uploading on the site. In case it's relevant to 
your work with the API/caching, I'll describe it here. I've used the API several 
times yesterday afternoon to attempt to change my background without any success. The 
CSS background image always referred to an image on Amazon S3 that didn't exist. By 
the end of the day, I uploaded an image via the site and my background still didn't 
change. Here's the neat part. This morning when I came into the office and uploaded 
another image through the site, my background changed to one of the many images I had 
uploaded via the API yesterday. I waited about 20 minutes and uploaded another image, 
and a completely different image I had uploaded using the API showed up! Pretty 
strange, thought you might like to know. Feel free to contact me if you need more 
details. 
Comment 30 by tobyvendetta, May 12, 2009
This is GREAT news! Looking forward to this being wrapped up!
Comment 31 by m...@twitter.com, May 13, 2009
Fix deployed. Verified with http://www.maverickwebcreations.com/twitter/twitter-background.php and http://twitter.com/mwcreations
Status: Fixed
Comment 32 by matt.parrett, May 13, 2009
We're still seeing inconsistent results using the API for background uploads. Please 
contact me directly if you would like the details of our implementation. 
Comment 33 by cts3e1, May 13, 2009
I'm getting 500 error code back when I try with the API, and broken images when I use 
the web interface
Comment 34 by m...@twitter.com, May 13, 2009
matt.parrett: it is possible the change has not propagated to all servers yet.

 cts3e1: it is possible the change has not propagated to all servers yet but a 500 is unexpected. When you say 
'broken images when I use the web interface', so you mean when you upload via the web interface, or view the 
page of the user you get the 500 for? Either way having a copy of the image and the user name could provide 
me some clues.
Comment 35 by cts3e1, May 13, 2009
it makes sense that propagation just hasn't gone through yet.  

by web interface I meant going to settings > picture and uploading a new image, but 
that's working now.  consider me impatient


Comment 36 by matt.parrett, May 14, 2009
has anyone been able to upload background images successfully with any degree of
consistency since the update yesterday?
Comment 37 by tobyvendetta, May 14, 2009
Still no. It seemed a to be working fine a couple hours ago, but now its showing the
same inconsistencies I was seeing days ago.

Hoping its just a propagating issue... 
Comment 38 by tobyvendetta, May 14, 2009
Actually, now its not working AT ALL through API or manually. Hopefully this means a
fix is going through the works
Comment 39 by matt.parrett, May 14, 2009
I'm also unable to set the image tiling via tile=false or tile=true. Images are
always tiled when changing the background image.
Comment 40 by m...@twitter.com, May 14, 2009
The propagation to servers should only have taken an hour at the most. Some of these problems could be related to 
the unplanned downtime [1] but that 7 minutes can only account for so many people updating this ticket. We are also 
in the process of deploying some more code so there could be some oddities while that is ongoing but there should 
be very few hiccups.

I am unable to reproduce the issue using the URLs in the original report. If you are still having problems please post 
the request/response headers, steps to reproduce, or a public URL like the original requester. If I cannot reproduce 
the issue I can't fix it.

http://status.twitter.com/post/107824532/unplanned-downtime



Comment 41 by m...@twitter.com, May 14, 2009
It looks like Amazon S3 may be having trouble at the moment. We're looking into it. We store profile images 
there so if S3 is down or inaccessible uploads will fail via the API and the web.
Comment 42 by matt.parrett, May 14, 2009
Using curl -v you can see the request and response headers. I've pasted mine below
and the command I used to obtain them. Replace the username, password, and image path
with valid information before running from a command line. I've attached a text file
with this same information in case it somehow gets mangled here. If you don't have
access to a command line, you can see the inconsistencies by using
twitterbackgrounds.com to post a background. My hope is that someone smarter than me
will point out that Twitter is just fine and my method is failing for some reason I
haven't noticed. 

curl -v -i -H "Expect:" --basic -u "username:password" -F
"image=@/path/to/an/image.jpg;filename=whatever.jpg;content-type:image/jpeg" -F
"tile=false" http://twitter.com/account/update_profile_background_image.xml

Request headers:

> POST /account/update_profile_background_image.xml HTTP/1.1
> Authorization: Basic [removed]==
> User-Agent: curl/7.15.5 (i686-redhat-linux-gnu) libcurl/7.15.5 OpenSSL/0.9.8b
zlib/1.2.3 libidn/0.6.5
> Host: twitter.com
> Accept: */*
> Content-Length: 135947
> Content-Type: multipart/form-data; boundary=----------------------------811bcf81d391
>

Response headers:

< Date: Thu, 14 May 2009 22:56:53 GMT
< Server: hi
< Last-Modified: Thu, 14 May 2009 22:56:53 GMT
< Status: 200 OK
< ETag: "1cb03712ebf881186c7fc8c407a22b2b"
< Pragma: no-cache
< Cache-Control: no-cache, no-store, must-revalidate, pre-check=0, post-check=0
< Content-Type: application/xml; charset=utf-8
< Content-Length: 1645
< Expires: Tue, 31 Mar 1981 05:00:00 GMT
< X-Revision: e8cdf86372da838f4cb112e826cddcd374bcee16
< X-Transaction: 1242341813-60326-27401
< Set-Cookie: lang=; path=/
< Set-Cookie:
_twitter_sess=BAh7CToJdXNlcmkE7GpfAjoTcGFzc3dvcmRfdG9rZW4iLWMwNjc0ODI1MmY4%250AYTI4YTViOTdmYTBlOTFhYTY0OThlMjJkYjNiZGY6B2lkIiVjNWEyZDdkYTFk%250ANGM0MWUzNDJjN2UzOWQyNzQ4OGY0NCIKZmxhc2hJQzonQWN0aW9uQ29udHJv%250AbGxlcjo6Rmxhc2g6OkZsYXNoSGFzaHsABjoKQHVzZWR7AA%253D%253D--15dcd4ee3d14d281359a31b7e2b87aa5a0b780cd;
domain=.twitter.com; path=/
< Vary: Accept-Encoding
< Connection: close


451.txt
1.7 KB Download
Comment 43 by matt.parrett, May 14, 2009
Here's a cute one-liner that quickly grabs the background image filename on a Twitter
profile.

curl -q http://twitter.com/some_twitter_profile 2>/dev/null | grep 'background: ' |
head -n 1 | sed 's/.*(\(.*\)).*/\1/' | rev | cut -f 1 -d '/' | revC
Comment 44 by tobyvendetta, May 14, 2009
I'm assuming that the issue is related to amazon S3. If you try and manually upload a
background it gives the response of "There was a problem with your picture. Was it an
animated gif? We don't support those!" when the photos are valid jpegs
Comment 45 by matt.parrett, May 14, 2009
We've been using Amazon S3 extensively for several months on several extremely busy
web apps. I've never had any weird problems like this.
Comment 46 by jasonmoore1st, May 18, 2009
Hi,

I'm the owner of www.TwitterBackgrounds.com, and we have been working with this
problem for several weeks. Obviously this bug has now been labeled as "fixed" and
"closed," so I worry no one is seeing this message. Perhaps the current bugs that
still exist are slightly different, but the problem that most of us are having is
still quite prevalent. 

From our perspective here is the problem:

When a user uses our tool to post a new background (along with a new
matching color scheme) it seems to work half the time. The other half the
time the API seems to immediately delete the old image from Amazon S3
(good) but yet the HTML still calls that image. It doesn't update the CSS
with the new information but yet deletes their old information. Normally
the color scheme will always show up. Perhaps there is a caching problem of
the user's CSS / Background image information.

To help you better understand and see the problem I've provided three
helpful examples.

First, I've attached a file with our code. Perhaps it is our faulty
programming (although many other developers have expressed their
frustrations too). You can verify that we are using the API correctly to
ensure that the problem is not on our end.

Second, is a link to our website: http://www.twitterbackgrounds.com. You
can use our API tool by trying to install any one of the free backgrounds
on Twitter. Again, if it works the first time, try it again. It seems to
fail about half the time.

Third, is a link to a Twitter search of TwitterBackgrounds.com:
http://search.twitter.com/search?q=twitterbackgrounds.com
That shows the most recent people who have used our site. If you go through
the first page you will see that half of the users’ profiles are broken.
This should give you an endless amount of examples to help verify.

Thanks for taking a look at this problem. We have several thousand users a
day trying to use this and we have several hundred a day that voice their
wishes for it to work consistently. We recently received a very kind
shoutout from @mashable (Pete Cashmore) and we were very sad that our site
couldn't work for those thousands of users.

Any help that we can provide, please let us know. Our team runs the largest
resource for MySpace Layouts as well, so we have worked with Amazon S3 on a
massive, hundreds of millions of daily calls basis. We have been working
round the clock to try and fix it on our end and are now at a point where we simply
have to wait for a fix. We greatly appreciate your work on this matter.

Hopefully the links to our tools and the users' profiles will help you replicate the
problem. Thanks again for working on this issue.
background-api.txt
1.7 KB Download
Comment 47 by mailjayanderson, Jun 16, 2009
So is background image now changed immediately with REST API? If yes - can anybody
help me with what piece of code?

I am PHP cURL but background image does not change and I get error as "Something has
gone wrong".

Any help will be highly appreciated.

- Jay
Comment 48 by bhargavabhat, Nov 02, 2009
I get the same error. When I run my PHP code, Twitter says Something has gone wrong". 
Here's my code:
$curl_handle = curl_init();
$img = "sunset.jpg";
$args = array(@$img);
curl_setopt($curl_handle, CURLOPT_POSTFIELDS, $args);
// Set up the twitter API address
$url = 'http://twitter.com/account/update_profile_background_image.xml';
curl_setopt($curl_handle, CURLOPT_URL, "$url");
curl_setopt($curl_handle, CURLOPT_CONNECTTIMEOUT, 2);
curl_setopt($curl_handle, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($curl_handle, CURLOPT_POST, 1);
//curl_setopt($curl_handle, CURLOPT_NOBODY, 0);
curl_setopt($curl_handle, CURLOPT_HEADER, true);
curl_setopt($curl_handle, CURLOPT_VERBOSE, 1);

$header = array("Expect:");
curl_setopt($curl_handle, CURLOPT_HTTPHEADER, $header); 

curl_setopt($curl_handle, CURLOPT_USERPWD, "iambhargava:iaminsane");
$buffer = curl_exec($curl_handle);
curl_close($curl_handle);

Can somebody please tell me what's wrong with it?

Sign in to add a comment

Hosted by Google Code