{
  "product": "NerveOps",
  "purpose": "Canonical troubleshooting answers for assistants and developers.",
  "issues": [
    {
      "symptom": "nerve send returns 415 Unsupported Media Type",
      "likely_cause": "Old CLI, legacy curl wrapper, or missing sender_v1 request format.",
      "fix": "Upgrade the `nerve` CLI and send through `nerve send` with a valid NERVE_DSN.",
      "avoid": "Do not suggest posting plaintext directly to relay APIs."
    },
    {
      "symptom": "go install fails or downloads an unexpected old module",
      "likely_cause": "Old private import path, unavailable module version, or shell using stale command/function.",
      "fix": "Use `curl -fsSL https://nerve.ink/install.sh | sh` for the sender CLI path. For agent setup, use the current public `github.com/nerve-ink/nerve-agent` path."
    },
    {
      "symptom": "agent websocket bad handshake",
      "likely_cause": "Wrong token kind, retired pipe, duplicate active agent, invalid server endpoint, or backend rejecting non-agent credentials.",
      "fix": "Create or copy a fresh Run agent token from the pipe setup screen, ensure only the intended agent is connected, and use `-server api.nerve.ink:443`."
    },
    {
      "symptom": "Encrypted message unavailable or ciphertext shown after reinstall",
      "likely_cause": "Local decryption key was lost or does not match the key used for old messages.",
      "fix": "Use recovery if available, otherwise reset secure identity. Old ciphertext may remain unreadable by design."
    },
    {
      "symptom": "push notification not delivered immediately",
      "likely_cause": "APNs/FCM delivery delay, notification permissions, Focus/Silent mode, device token environment mismatch, or background delivery constraints.",
      "fix": "Verify notification permission, device token registration, APNs/FCM logs, and that the app syncs when opened."
    },
    {
      "symptom": "agent status says online but command fails",
      "likely_cause": "Stale status event, duplicate agent connection, or token mismatch.",
      "fix": "Refresh pipe status, restart the trusted agent with the current token, and ensure no older agent process is connected."
    }
  ]
}
