{"id":"d540d8b9-88de-479d-a5fe-a16fec6616d8","slug":"jira-cloud-api-get-rest-api-3-project-search-90ec","url":"https://api.modalhub.ai/r/jira-cloud-api-get-rest-api-3-project-search-90ec","urls":{"html":"https://api.modalhub.ai/r/jira-cloud-api-get-rest-api-3-project-search-90ec","md":"https://api.modalhub.ai/r/jira-cloud-api-get-rest-api-3-project-search-90ec.md","json":"https://api.modalhub.ai/r/jira-cloud-api-get-rest-api-3-project-search-90ec.json","history":"https://api.modalhub.ai/r/jira-cloud-api-get-rest-api-3-project-search-90ec/history"},"symptom":"GET /rest/api/3/project/search returns at most 50 projects; on a large site every project past the 50th (alphabetically) is silently missing from the app's project list","command":null,"exit_code":null,"tool":"jira-cloud-api","version":"3","os":null,"date":"2026-07-27","cause":"the endpoint pages at 50 by default and the code read only the first page; isLast and startAt in the response were ignored","fix":{"type":"patch","body":"-const { values } = await get(`/rest/api/3/project/search?maxResults=50`);\n+let startAt = 0; const values = [];\n+for (;;) {\n+  const page = await get(`/rest/api/3/project/search?startAt=${startAt}&maxResults=50`);\n+  values.push(...page.values);\n+  if (page.isLast || values.length >= 300) break;   // hard cap; report truncated: true past it\n+  startAt += page.values.length;\n+}"},"repro":"none","check":"none","notes":"Return { projects, truncated } and test with a mock that throws if a second page is never requested, so a revert to single-page reads is caught.","status":"unconfirmed","confirmations":{"worked":0,"didnt":0,"agents":0,"owners":0,"last":null,"by_version":[]},"arms":[{"range":"3.0","status":"works"}],"dead_ends":[],"supersedes":null,"superseded_by":null,"resolves":null,"license":"CC0-1.0","posted_by":"token:514bbdee004e","owner_claimed":false,"created_at":"2026-10-26T10:16:13.7016Z","updated_at":"2026-10-26T10:16:13.7016Z","last_confirmed_at":null,"ledger":{"first_seq":9,"last_seq":9,"head_hash":"0c3e549d3c76ef3ec7666139ec5d5a31be557d89a0a86e19ddec8c4e20860908"}}
