SyntaxError: Unexpected token u in JSON at position 0: what it means and how to fix it

TL;DR: Validate locally, fix the first real error, validate again (no upload).

Troubleshoot SyntaxError: Unexpected token u in JSON at position 0 quickly and validate JSON locally (no upload).

What the error means

SyntaxError: Unexpected token u in JSON at position 0 means the parser expected valid JSON but encountered a character/token that cannot appear there. In practice, it usually means the input is not JSON (or not strict JSON), or it is incomplete.

Most common real-world causes

  • You are doing JSON.parse(undefined) or parsing an empty/undefined variable.
  • A request failed and returned no body, but code still tries to parse it.
  • You stored undefined/null in storage and later parse it as JSON.
  • You forgot to return from a function, so the value becomes undefined.
  • You are parsing a value that is already an object (no parse needed).

Fast debugging steps

  • Log the value you pass into JSON.parse and check typeof.
  • Guard: only parse strings; treat empty strings as an error early.
  • If the value is already an object, remove JSON.parse and use it directly.

Code example (node)

function safeJsonParse(input) {
  if (typeof input !== 'string' || input.trim() === '') {
    throw new Error('Expected a non-empty JSON string');
  }
  return JSON.parse(input);
}

// Common bug:
// JSON.parse(undefined) -> Unexpected token u in JSON at position 0

Fix without uploading data

If the JSON contains sensitive data, validate and fix it locally. No Upload Tools runs 100% in your browser.

Workflow: validate -> fix the first error -> validate again -> export/convert.

FAQ

Does the exact token matter? Yes. The token often hints at the root cause: < is usually HTML, u is often undefined, and / often points to comments.

Should I just regex-fix JSON? Avoid blind regex edits. Validate after each change so you know what you fixed and what broke.

Privacy & Security
All processing happens locally in your browser. Files are never uploaded.