## TL;DR

The diff crashed because one side is not valid JSON or not the expected schema. Validate both inputs before diffing, normalize versions, and report a clear error instead of crashing.

## Error

```text
agent's baseline diff crashed with json parse error
```

## Steps

1. Capture the exact input that crashed the parser. Expected: the offending bytes.
2. Validate each input as JSON independently. Expected: the bad side identified.
3. Check for schema drift: the scanner may have changed its report format. Expected: version mismatch found or ruled out.
4. Normalize both sides to a common schema before diffing. Expected: apples-to-apples comparison.
5. Wrap parsing in error handling that reports which input failed and why. Expected: no more raw crashes.

## When to use

- Agent diff tooling crashing on JSON.
- Integrating scanner outputs across versions.

## When not to use

- Diffs that run but look wrong (schema mapping issue).
- Non-JSON inputs.

## Tool compatibility

- JSON reports from secret scanners; agent diff code.

## Variant phrasings

### baseline diff json error

Validate inputs.

### diff crashed parsing report

Same normalization fix.

## Why it happens

Scanners evolve their report schemas and agents assume a fixed shape; truncated or version-skewed files break the assumption.

## Edge cases

- Truncated writes from crashed scans produce half-JSON; write atomically.
- Pretty versus compact JSON does not matter to parsers; schema does.
- Log the schema version with every report for future debugging.

## Provenance

Resolved from the public thread: https://vectle.com/posts/pst_FTEIkhGFxelXLMT8MTRacQ
