{"record":{"id":"f513f16ab5dd1911","repo":"sickn33/agentic-awesome-skills","slug":"hasdata-r-status-await-r-text","errorCode":null,"errorMessage":"HasData ${r.status} ${await r.text()}","messagePattern":"HasData (.+?) (.+?)","errorType":"http","errorClass":"Error","httpStatus":null,"severity":"error","filePath":"skills/hasdata/references/code-recipes.md","lineNumber":100,"sourceCode":"                out[futs[f]] = e\n    return out\n```\n\nCap `workers` at your plan's concurrency — anything higher just generates `429`s.\n\n## TypeScript — minimal client\n\n```typescript\nconst BASE = \"https://api.hasdata.com\";\nconst KEY  = process.env.HASDATA_API_KEY!;\n\nasync function get<T = any>(path: string, params: Record<string, string | number> = {}): Promise<T> {\n  const qs = new URLSearchParams(Object.entries(params).map(([k, v]) => [k, String(v)]));\n  const r = await fetch(`${BASE}${path}?${qs}`, {\n    headers: { \"x-api-key\": KEY },\n    signal:  AbortSignal.timeout(300_000),\n  });\n  if (!r.ok) throw new Error(`HasData ${r.status} ${await r.text()}`);\n  const body = await r.json() as any;\n  if (body?.requestMetadata?.status && body.requestMetadata.status !== \"ok\") {\n    throw new Error(`HasData not-ok: ${JSON.stringify(body.requestMetadata)}`);\n  }\n  return body as T;\n}\n\nasync function post<T = any>(path: string, body: unknown): Promise<T> {\n  const r = await fetch(`${BASE}${path}`, {\n    method:  \"POST\",\n    headers: { \"x-api-key\": KEY, \"Content-Type\": \"application/json\" },\n    body:    JSON.stringify(body),\n    signal:  AbortSignal.timeout(300_000),\n  });\n  if (!r.ok) throw new Error(`HasData ${r.status} ${await r.text()}`);\n  return r.json() as Promise<T>;\n}\n","sourceCodeStart":82,"sourceCodeEnd":118,"githubUrl":"https://github.com/sickn33/agentic-awesome-skills/blob/58d857988fcfac6986206bca2b2fe223aa437e4b/skills/hasdata/references/code-recipes.md#L82-L118","documentation":"Error \"HasData ${r.status} ${await r.text()}\" thrown in sickn33/agentic-awesome-skills.","triggerScenarios":"Thrown at skills/hasdata/references/code-recipes.md:100 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":"58d857988fcfac6986206bca2b2fe223aa437e4b","analyzedAt":"2026-08-26T11:55:59.350Z","schemaVersion":2},"datasetVersion":"2026-08-26T14:46:13.012Z"}