# Songbook live JSON failure copy card

Last refreshed: 2026-07-01 07:00 AWST

Purpose: keep public-safe, user-facing fallback copy ready for the live chordbook when the canonical seed route, fallback seed route, network, or a public lyrics lookup is unavailable. These lines are safe to show in the browser UI or support runbooks; they do not include private songs, credentials, payment details, router data, or Wi-Fi secrets.

## Short fallback lines

| Situation | User-facing copy | Operator meaning |
|---|---|---|
| Canonical JSON unavailable | "Can't reach the main song list yet - trying the backup song list now." | `chords.system8.json` failed, but `songs.json` can still keep the public seed usable. |
| Fallback JSON unavailable too | "The online starter song list is unavailable. Your saved browser songs and import/export tools still work." | Both seed routes failed; do not wipe localStorage or hide backup controls. |
| Offline mode | "Offline mode: use songs already saved on this device, or import a backup JSON when you are ready." | Network unavailable; preserve local-first behaviour and avoid account prompts. |
| No public lyrics found | "No public lyrics are published for this song yet. Try another song, or ask enkayz for the public lyrics link." | Public lyrics slug/record missing; never expose private chord bodies or performer notes as a fallback. |

## UI behaviour guardrails

- Keep the app shell, search box, and import/export controls visible when seed JSON fetches fail.
- Existing browser-local songs remain authoritative; a failed seed fetch must not clear localStorage.
- If `songs.json` succeeds after `chords.system8.json` fails, show the song list and record the canonical route as an operator issue rather than alarming the audience.
- Public lyrics fallback copy must stay lyric/chord/private-note free until a deliberately public `publicLyrics` value exists.
- Do not include API keys, Netlify tokens, payment credentials, router details, Wi-Fi passwords, private phone numbers, or private gig notes in copy or JSON fixtures.

## Verification

Run from `/home/nk/chords-system8-live-site`:

```sh
npm test
python3 -m json.tool chords.system8.json >/tmp/chords-system8-json-route-local.json
python3 -m json.tool songs.json >/tmp/chords-system8-songs-route-local.json
cmp -s chords.system8.json songs.json
```

Browser check: open the local homepage and confirm the "JSON failure copy" link appears beside the live health, JSON route status, and JSON consumer checklist links; open this card and confirm the four fallback situations above render as text with no console errors.
