I am seeing a similar problem, I deployed a FormPage and the response seems always to be code. I don't know how to apply the "PNG" trick from above to a FormPage though.
FormPage[
{{"zips", "Zip Codes"} ->
Restricted[
DelimitedSequence[
Restricted["String", RegularExpression["\\d\\d\\d\\d?\\d?"]],
","], {2, 1000}] ->
StringRiffle[
Map[(#["Name"]) &, GeoEntities[$GeoLocation, "ZIPCode"]], ","],
{"property", "Report"} -> Restricted["String",
{{"AverageHouseValue", "MedianHouseholdIncome",
"PersonsPerHousehold", "PopulationDensity"}}]},
(GeoRegionValuePlot[
Module[{p = #property},
Map[(Module[{z = ZIPCodeData[#]}, z -> z[p]]) &, #zips]],
PlotLabel -> #property,
MissingStyle -> Directive[Green, EdgeForm[Dashed]],
GeoLabels -> (Tooltip[#1, #2] &)]) &,
AppearanceRules -> <|"Title" -> "ZIP Code Demographics v2",
"Description" ->
"Enter two or more comma-separated Zip Codes to compare \
demographic data."|>]
The output from the page starts
Legended[GeoGraphics[Graphics[{{Annotation[{Texture[Image[RawArray["UnsignedInteger8", {{{158, 158, 158,