diff --git a/.changeset/little-berries-hang.md b/.changeset/little-berries-hang.md new file mode 100644 index 000000000..f43ab249a --- /dev/null +++ b/.changeset/little-berries-hang.md @@ -0,0 +1,5 @@ +--- +"frames.js": minor +--- + +Handle `InvalidJFSHeaderError` in `parseManifest` for better error reporting diff --git a/packages/frames.js/src/frame-parsers/farcasterV2.ts b/packages/frames.js/src/frame-parsers/farcasterV2.ts index f149f4e4f..6dc9264f2 100644 --- a/packages/frames.js/src/frame-parsers/farcasterV2.ts +++ b/packages/frames.js/src/frame-parsers/farcasterV2.ts @@ -5,7 +5,7 @@ import { } from "@farcaster/frame-core"; import { z } from "zod"; import type { FarcasterManifest } from "../farcaster-v2/types"; -import { decodePayload, verify } from "../farcaster-v2/json-signature"; +import { decodePayload, verify, InvalidJFSHeaderError } from "../farcaster-v2/json-signature"; import { getMetaTag, removeInvalidDataFromObject } from "./utils"; import type { ParseResultFramesV2, @@ -331,7 +331,12 @@ async function parseManifest( reports: reporter.toObject(), }; } catch (e) { - if (e instanceof Error) { + if(e instanceof InvalidJFSHeaderError) { + reporter.error( + "fc:manifest", + `Failed to verify account association signature: InvalidJFSHeaderError` + ); + } else if (e instanceof Error) { reporter.error( "fc:manifest", `Failed to parse frame manifest: ${String(e)}`