{
  "$schema": "https://veritymodchecker.online/data/verity-api-troubleshooting.schema.json",
  "schemaVersion": 1,
  "checkedAt": "2026-08-05T09:45:00+08:00",
  "canonicalUrl": "https://veritymodchecker.online/api-connection-failed/",
  "method": "Point-in-time troubleshooting source pack built from Google Search Console query rows, GA4 landing-page and event signals, official provider documentation, and the official Modrinth public API. This file does not collect API keys, host Verity downloads, or claim that an API error is a malware verdict.",
  "observedDemand": {
    "gscWindow": "2026-07-15 through 2026-08-02 delayed Search Console data",
    "ga4Window": "Past 28 days landing-page and event data plus last-7-days channel data checked August 5, 2026 at 09:45 Asia/Shanghai",
    "topGscRows": [
      {
        "query": "verity mod",
        "clicks": 2,
        "impressions": 3
      },
      {
        "query": "verity api connection failed 401",
        "clicks": 2,
        "impressions": 2
      },
      {
        "query": "verity-3.4.1.jar",
        "clicks": 1,
        "impressions": 13
      },
      {
        "query": "api connection failed status 429 verity",
        "clicks": 1,
        "impressions": 4
      },
      {
        "query": "api connection failed 429 verity mod",
        "clicks": 1,
        "impressions": 2
      },
      {
        "query": "verity mod status 429",
        "clicks": 1,
        "impressions": 2
      },
      {
        "query": "verity je download",
        "clicks": 1,
        "impressions": 2
      },
      {
        "query": "api connection failed 401 verity mod",
        "clicks": 1,
        "impressions": 1
      },
      {
        "query": "verity error 401",
        "clicks": 1,
        "impressions": 1
      },
      {
        "query": "api connection failed status 429 verity mod",
        "clicks": 1,
        "impressions": 1
      }
    ],
    "ga4Signals": {
      "sessions": 865,
      "totalEventCount": 3944,
      "apiConnectionFailedLandingSessions": 220,
      "apiConnectionFailedPageViewsLast7Days": 63,
      "organicSearchSessionsLast7Days": 86,
      "referralSessionsLast7Days": 55,
      "googleOrganicSessionsLast7Days": 10,
      "bingOrganicSessionsLast7Days": 12,
      "yandexReferralSessionsLast7Days": 58,
      "gistGithubReferralSessionsLast7Days": 45,
      "verityOutboundProjectClickEvents": 91,
      "veritySourceCheckEvents": 17,
      "verityApiErrorDiagnosisEvents": 74,
      "keyEvents": 85
    },
    "notes": [
      "The head term verity mod remains visible in GSC with 2 clicks and 3 impressions in the delayed July 15 through August 2 window.",
      "API troubleshooting demand remains visible in query rows and /api-connection-failed/ is the strongest non-homepage landing page by sessions in the current GA4 past-28-days view.",
      "Gist referral traffic remains visible, so public source packs remain a verified non-spam growth path for this site.",
      "Public DNS for the canonical domain currently returns Status 3 / no A answer while RDAP still shows server hold, so registrar resolution is the critical traffic blocker."
    ]
  },
  "currentVerityJeSource": {
    "host": "Modrinth",
    "projectId": "on1Y0osD",
    "projectApiUrl": "https://api.modrinth.com/v2/project/on1Y0osD",
    "currentVersionId": "6jRN8Exp",
    "currentVersionApiUrl": "https://api.modrinth.com/v2/version/6jRN8Exp",
    "currentFile": "verity-6.1.jar",
    "minecraftVersion": "1.20.1",
    "loader": "Forge",
    "projectDownloadsAtCheck": 636585,
    "currentVersionDownloadsAtCheck": 112761,
    "stableVersionId": "yAt0wv1Z",
    "stableVersionDownloadsAtCheck": 367680,
    "projectUpdatedAt": "2026-08-01T16:26:35.375695Z",
    "followersAtCheck": 189,
    "sha1": "72f974905772b020c51e9605d35777be1a542e62",
    "sha512": "4e721c8709c30230ee9b9a59eca2f70410c841244baa6ec473170cb0528562e369d277f78c20a155dcd863dabaa93897290e2cf0402804107bca93a98aa1b189",
    "previousVisibleVersionId": "CXsEzVwJ",
    "previousVisibleFile": "verity-6.jar",
    "previousVisibleVersionDownloadsAtCheck": 67807
  },
  "providerSources": [
    {
      "provider": "Groq",
      "sourceUrl": "https://console.groq.com/docs/errors",
      "useFor": "401, 403, 404, 429, 5xx status-code meaning."
    },
    {
      "provider": "Groq",
      "sourceUrl": "https://console.groq.com/docs/rate-limits",
      "useFor": "Request, token, audio, image, daily, and organization-level limit checks."
    },
    {
      "provider": "OpenRouter",
      "sourceUrl": "https://openrouter.ai/docs/api-reference/errors",
      "useFor": "OpenRouter and upstream-provider error-layer separation."
    },
    {
      "provider": "Ollama",
      "sourceUrl": "https://docs.ollama.com/api",
      "useFor": "Local generate/chat API, model name, and local service troubleshooting."
    },
    {
      "provider": "Modrinth",
      "sourceUrl": "https://api.modrinth.com/v2/project/on1Y0osD",
      "useFor": "Current Verity JE project identity, active version IDs, downloads, followers, and update timestamp."
    }
  ],
  "statusRoutes": [
    {
      "statusOrSymptom": "401 Unauthorized or invalid API key",
      "likelyLayer": "Credential or wrong provider",
      "firstAction": "Match Groq versus OpenRouter, rotate exposed keys, paste one fresh provider key locally, and retest one short text prompt.",
      "localRoute": "https://veritymodchecker.online/status-401/",
      "avoid": "Do not post the API key or reinstall the same jar for a credential error."
    },
    {
      "statusOrSymptom": "403 Forbidden",
      "likelyLayer": "Account, organization, model, route, content, or permission restriction",
      "firstAction": "Check model access, provider permissions, account restrictions, and any guardrail or moderation message.",
      "localRoute": "https://veritymodchecker.online/api-connection-failed/#official-provider-evidence",
      "avoid": "Do not treat 403 as the same problem as a missing key."
    },
    {
      "statusOrSymptom": "404 model or endpoint not found",
      "likelyLayer": "Model ID, endpoint, or route configuration",
      "firstAction": "Open the current provider model list and select a model supported by the installed Verity build.",
      "localRoute": "https://veritymodchecker.online/api-connection-failed/#error-map",
      "avoid": "Do not use model IDs copied from old videos without checking the provider."
    },
    {
      "statusOrSymptom": "429 Too Many Requests",
      "likelyLayer": "Request, token, audio, image, or daily rate limit",
      "firstAction": "Stop retries, inspect the provider limits page, wait for the reset window, then test one short text prompt.",
      "localRoute": "https://veritymodchecker.online/status-429/",
      "avoid": "Do not create repeated keys in the same organization as a quota fix."
    },
    {
      "statusOrSymptom": "503 service unavailable or provider 529 overload",
      "likelyLayer": "Provider availability, upstream route, or temporary capacity",
      "firstAction": "Wait, check provider status or model availability, and retry one short text prompt later.",
      "localRoute": "https://veritymodchecker.online/api-connection-failed/#temporary-provider-errors",
      "avoid": "Do not rotate a valid key for a service availability error."
    },
    {
      "statusOrSymptom": "Ollama connection refused",
      "likelyLayer": "Local service, host, port, firewall, or missing local model",
      "firstAction": "Start Ollama, confirm it answers outside Minecraft, and match the exact local endpoint and model in the Verity profile.",
      "localRoute": "https://veritymodchecker.online/api-connection-failed/#official-provider-evidence",
      "avoid": "Do not search for a cloud key when the route is local Ollama."
    },
    {
      "statusOrSymptom": "Null, blank, or silent reply",
      "likelyLayer": "Model output, profile configuration, local service, integration log, or voice layer",
      "firstAction": "Test one short typed prompt, compare model names and endpoints, and read a sanitized launcher or mod log.",
      "localRoute": "https://veritymodchecker.online/api-connection-failed/#quick-diagnosis",
      "avoid": "Do not diagnose voice until text succeeds."
    },
    {
      "statusOrSymptom": "Text works but voice does not",
      "likelyLayer": "Speech recognition, TTS, device, language, voice dependency, or audio limit",
      "firstAction": "Keep the provider setup unchanged and move to microphone, TTS, output device, language, and voice dependency checks.",
      "localRoute": "https://veritymodchecker.online/voice-not-working/",
      "avoid": "Do not rotate a working API key for a voice-only failure."
    }
  ],
  "safeSupportSummaryFields": [
    "provider",
    "status code or symptom",
    "model name",
    "Minecraft profile",
    "text test state",
    "key safety state",
    "sanitized log line with no API key"
  ]
}
