Purpose. Quick triage for common verification failures in SSM-Clock Stamp. Each item lists the symptom, cause, and what to do next — all in plain ASCII.
1) HASH mismatch (HASH_OK=false)
- Symptom:
h' != sha256(file)(underkv:algoif present). - Cause: File bytes changed; wrong file; read in text mode; wrong
kv:algo. - Action: Re-read file in binary; recompute
H_algo(file_bytes); confirmkv:algo; compare lowercase 64-hex strings.
2) CLOCK mismatch (CLOCK_OK=false)
- Symptom:
rasi'_idx != rasi_idxortheta_fmt != theta_deg. - Cause:
iso_utcnot inYYYY-MM-DDThh:mm:ssZ; subseconds/offsets used; wrong rounding (not round-half-to-even); wrongtheta_prec. - Action: Parse
iso_utcas UTC (no subseconds); recomputetheta'_deg = wrap360( (unix_seconds / 86400) * 360 )andrasi'_idx = floor(theta'_deg/30); formattheta'_degwith exactlytheta_precdigits (default5) using IEEE-754 binary64 banker’s rounding; compare as strings.
3) Leap-second violation
- Symptom:
iso_utchas:60→ reject. - Cause: Attempted stamp at
23:59:60. - Action: Do not stamp at the leap second; use a valid second (
00..59).
4) CHAIN rewalk failed (CHAIN_OK=false)
- Symptom: Mismatch at row
k:H_chain_k( ascii(chain_{k-1} + "|" + stamp_core_k) ) != chain_k. - Cause: Deletion/insertion/reorder; used the wrong
chain_algo; rebuiltstamp_core_kwith a differenttheta_degstring; non-ASCII join (spaces/Unicode). - Action: Rebuild
stamp_core_kexactly; rewalk fromchain_0 = "0"*64; use the declaredkv:chain_algoper row; ensure concatenation is ASCII with a single literal|.
5) Anchor mismatch (ANCHOR_OK=false)
- Symptom:
rollup_D' != rollup_sha256orn != count. - Cause: Non-canonical order; missing/extra stamp; wrong day selection; wrong join string.
- Action: Select same UTC day; sort by
(iso_utc, stamp_core, chain); join as"Stamp_1|...|Stamp_n"(literal|, no leading/trailing); computesha256( ascii(joined) ).
6) KV invalid (syntax/domain)
- Symptom: Unrecognized value or duplicate key → FAIL.
- Cause:
theta_precoutside{3..9};float != ieee75464;time_modenot in{derived_utc, observed};|Δ|>30forssmc_hint_min; malformedchain_idordevice; duplicate keys. - Action: Enforce domains; ignore unknown keys; reject duplicates/out-of-domain values.
7) Orphan sidecar (evidence)
- Symptom: Evidence present but source file missing.
- Cause: File moved/deleted.
- Action: Report
HASH_OK=unknown(cannot compute); do not pass core checks without the file.
8) Mixed line endings / locale drift
- Symptom: Hashes/angles differ across systems.
- Cause: Text-mode reads (CRLF normalization); locale printing affecting
theta_deg. - Action: Always read binary; print with
.decimal; enforce fixed digits and binary64 banker’s rounding.
9) Wrong field shapes
- Symptom: Extra spaces, uppercase hex, trailing
|, offsets in time. - Cause: Non-canonical formatting.
- Action: Ensure one ASCII line;
|-separated; lowercase 64-hex;iso_utcends withZ, seconds only.
Navigation
Back: SSM-Clock Stamp – Verdict Logic (2.6)
Next: SSM-Clock Stamp – Canonical Formatting & Normalization (2.8)