The following small piece of code yields $Failed when executed in a cloud notebook through a browser.
However it gives the proper answer when executed in the same cloud notebook accessed via the Wolfram Desktop (and, of course, works in a desktop Mathematica environment):
Any thoughts on this? I’ve reported it as a possible bug, but would like to understand whether it is by design and, if so, what are the additional restrictions on cloud programming–whether in cloud notebooks, Instant APIs, or cloud Forms.
I can reproduce what you describe. I also suspect that it is probably an unwanted feature, i.e. a bug. Other formats in ExportString seem to work ok-ish.