talkingCode

Archive for the flash category

Error #2046: The loaded file did not have a valid signature

posted by codders in flash

Ahh, Flash. Flash Flash Flash. You’re at the supermarket, you’re buying chicken breasts for statutory Saturday night curry, and the boss calls to say the website is down. You check the services monitor – no errors. You’ve deployed no changes – it’s a weekend. But sure enough, the flash player on the site doesn’t load.

Often, #2046 is caused by some kind of corruption. Sometimes, deleting your .macromedia folder fixes it (causes a redownload of any corrupt Flash objects). But when everybody reports the error across all platforms… it must be something else.

‘Did not have a valid signature’ isn’t terribly specific, but you might find that setting your system clock back by 24 hours fixes the issue. If this is the case for you, Adobe are bastards. The SDK you are using has expired. It will still generate Flash binaries without reporting an error, but the binaries it creates will mysteriously not work on any system with a correctly-set clock. Download the latest SDK, and it’s business as usual.

Oh. And one day that SDK will expire, of course. And the binaries you’ve already created will need to be rebuilt. You could buy an SDK license, but … well … not for Linux. So I guess you’re trapped.

Thanks, Adobe

Error #2032 IOError in URLLoader.load()

posted by codders in actionscript, flash

Long time no see.

This one cost me a certain amount of time and pain, so I thought I’d share the wealth. We’re in ActionScript3, and we’re looking at mysterious error messages. Every time my application loaded in 64-bit Flash on Linux, I was getting a #2032, but no bad HTTP responses in the Firebug Net Console. Because it was 64-bit, I didn’t have a debug version of the player available, and was unable to get any stack traces. Fortunately, the application uses the very fine SOS Logging Framework, so I was able to do some log-based debugging and track the issue down to a call to URLLoader.load(). Unfortunately, you can’t really get any deeper than that.

The player didn’t like the URL. It generated an IOErrorEvent with no additional explanation. It didn’t try sending it over the network. The URL was well formed and looked similar to all the other URLs I was using. We had had sporadic reports from users, but I was only able to reproduce it on my work desktop (and only the 64-bit Firefox, not the 32-bit chroot).

Long story short, if you’re using an ad blocker like AdBlockPlus and the blacklist matches the URL of your URLRequest, Flash will return you a mysterious Error #2032. In particular, this URL contained the word ‘adverts’ – silly me.

The more you know

Recent Posts
Recent Comments
About Us
jp: works like a charm! thanks!...
Blake: Check this out: http://bugs.adobe.com/jira/browse/SDK-28016...
Boydell: Wow. That was it. You are the only one that had it figured out, and I looked at many...
mark van schaik: thanks! was using a beta SDK version for a production app, which stopped working over...
Sebastian: Steve, I find most asynchronous programming to be incredibly painful. Haskell's appro...

This is the personal blog of a professional software engineer. This site and the views expressed on it are in no way endorsed by the RIAA.