{"record":{"id":"1c5c7bdb51457864","repo":"coleam00/Archon","slug":"the-archon-github-app-is-not-installed-on-owner","errorCode":null,"errorMessage":"The Archon GitHub App is not installed on \"${owner}\". Install it on the ${owner} account${installLink} to grant Archon access to ${owner}/${repo}.","messagePattern":"The Archon GitHub App is not installed on \"(.+?)\"\\. Install it on the (.+?) account(.+?) to grant Archon access to (.+?)/(.+?)\\.","errorType":"exception","errorClass":"AppNotInstalledError","httpStatus":404,"severity":"error","filePath":"packages/core/src/github-auth/auth.ts","lineNumber":103,"sourceCode":"    const cached = lookupCache.get(key);\n    if (cached && Date.now() - cached.cachedAt < LOOKUP_CACHE_TTL_MS) {\n      return cached.installationId;\n    }\n    getLog().debug({ owner, repo }, 'github_auth.install_lookup_started');\n    try {\n      const res = await appOctokit.request('GET /repos/{owner}/{repo}/installation', {\n        owner,\n        repo,\n      });\n      const installationId = res.data.id;\n      lookupCache.set(key, { installationId, cachedAt: Date.now() });\n      getLog().info({ owner, repo, installationId }, 'github_auth.install_lookup_completed');\n      return installationId;\n    } catch (err) {\n      const status = (err as { status?: number }).status;\n      if (status === 404) {\n        getLog().warn({ owner, repo }, 'github_auth.install_lookup_not_installed');\n        throw new AppNotInstalledError(owner, repo, config.slug);\n      }\n      getLog().error({ err, owner, repo }, 'github_auth.install_lookup_failed');\n      throw err;\n    }\n  }\n\n  async function getInstallationTokenById(installationId: number): Promise<string> {\n    const cached = tokenCache.get(installationId);\n    if (cached && Date.now() + REFRESH_BUFFER_MS < cached.expiresAtMs) {\n      return cached.token;\n    }\n    getLog().debug({ installationId }, 'github_auth.token_resolve_started');\n    try {\n      const res = await appOctokit.request(\n        'POST /app/installations/{installation_id}/access_tokens',\n        { installation_id: installationId }\n      );\n      const token = res.data.token;","sourceCodeStart":85,"sourceCodeEnd":121,"githubUrl":"https://github.com/coleam00/Archon/blob/0773b9745896ef0612e709c80845a0f7db315b19/packages/core/src/github-auth/auth.ts#L85-L121","documentation":"Error \"The Archon GitHub App is not installed on \"${owner}\". Install it on the ${owner} account${installLink} to grant Archon access to ${owner}/${repo}.\" thrown in coleam00/Archon.","triggerScenarios":"Thrown at packages/core/src/github-auth/auth.ts:103 when the library encounters an invalid state.","commonSituations":"See trigger scenarios.","solutions":[],"exampleFix":null,"handlingStrategy":null,"validationCode":null,"typeGuard":null,"tryCatchPattern":null,"preventionTips":[],"tags":[],"backgroundTag":null,"analyzedSha":"0773b9745896ef0612e709c80845a0f7db315b19","analyzedAt":"2026-09-01T02:28:07.064Z","contentChangedAt":null,"schemaVersion":2},"datasetVersion":"2026-09-08T05:18:18.240Z"}