am pulling my hair over this :(
spent 10 hrs but nothing came out
I read this thread
http://forum.developers.facebook.com/viewtopic.php?pid=198128
but it didn't help much.
I'm running a local dev App Engine server ( localhost:8080 )
iframe app 
so I have a couple of problems.
1) on safari 4.0.4, the publish story dialog comes up nicely with all images/data/action_links. upon posting a story (or skipping), the dialog goes blank and wouldn't close.
2) I tested the same code on firefox 3.5.8, the dialog comes up with all images/data/action_links, but then the whole thing freezes.   
Clicking anywhere on the dialog doesn't help at all. If i'm patient enough and click "publish", I have to wait for abt 10 seconds before the dialog says "story is published". then it freezes. (clicking on skip doesn't make a difference).  
btw, there is no "button clicking effect" : ie: the buttons don't look like they "sink down" upon clicking.
I checked the firefox memory using the command "top" on the terminal, it all seems okay, no spike in CPU processes ( i could open other firefox tabs and work on them)
My futile attempts at solving the problems...
1) so i thought, hmm could this be because of local dev (localhost) problem? I uploaded the code to the production server, the same thing happens.
2) I tried an older firefox (3.1) and the same problem persisted ( the freezing )
3) I noticed that i kind of used 2 different FB features ( Connect and XFBML).  The Connect Feature I used in the PostStory function. The XFBML feature I used before the  tag.
So I thought, hmm ... I tried replacing the FB_RequireFeatures["Connect"] feature with FB_RequireFeatures["XFBML"]. nothing changed. I still can't close the story dialog.
4) Is there a possibility that I didn't connect to xd_receiver.htm properly? 
my xd_receiver.htm is stored in my folder /media/fbconnect
in my app.yaml
handler:
- url: /fbconnect
  static_dir: media/fbconnect
so i thought a connection has to be established with xd_receiver.htm. any way I can test that?
here're all the codes:
<script type="text/javascript">
        //post story function
        function PostStory() {
            //init facebook
            FB_RequireFeatures(["Connect"], function() {
            FB.Facebook.init('my_app_key', "/fbconnect/xd_receiver.htm");
            FB.ensureInit(function() {
                var message = 'the message';
                var attachment = {
                    'name': 'a simple app to send gifts',
                    'href': 'http://apps.facebook.com/my_app_name', 'caption': '{*actor*} sent u something',
                    'description': 'some description',
                    "media": [{ "type": "image", "src": "http://bit.ly/105QYr", "href": "http://bit.ly/105QYr"}]
                };
                //action links can only be seen AFTER the feed is published
                var action_links = [{ 'text': 'Send him/her a gift back!', 'href': 'http://somelink.com'}];
                FB.Connect.streamPublish(message, attachment, action_links, null, "Share the gift with your friends", callback, false, null);
            });
        });
        function callback(post_id, exception) {
            //alert('Wall Post Complete');
        }
}
</script>
just before the end of the /body tag, i have this:
<script type="text/javascript">
function callFBInit() {
     FB_RequireFeatures(
         ["XFBML"], 
             function(){ 
                 FB.Facebook.init("my_app_key", "/fbconnect/xd_receiver.htm");
             }
     );
    }
    callFBInit();
btw, my xd_receiver.htm contains:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
  <html xmlns=? http://www.w3.org/1999/xhtml?  >
    <head>
      <title>cross-domain receiver page</title>
     </head>
    <body>
      <script src=?http://static.ak.facebook.com/js/api_lib/v0.4/xdcommreceiver.debug.js?  type=? text/javascript? ></script>
    </body>
  </html>
hope you guys can help out. thx