404 {"error": "Invalid company prefix in URL."} |
Wrong <companyPrefix>, or your user belongs to a different tenant |
Confirm the prefix with your Kendis administrator |
401 Unauthorized |
Missing/invalid Authorization, revoked key, or Kendis password sent instead of the API key |
Regenerate the key in Profile → API Keys; re-encode email:apiKey to Base64; confirm the header reads Authorization: Basic <token> (not Bearer) |
500 {"error": "No Session Board found"} |
boardId is unknown to your tenant, or your user can't access it |
Always fetch the board via List Boards and copy the exact id. Do not extract IDs from browser URLs — those are session IDs, not board IDs |
Empty data: [] on /collections or /boards |
No collections/boards in your workspace, or your key's user has no access |
Open Kendis in the browser as the same user and confirm visibility |
objective.completion always 0 or null |
Selected completionType doesn't match how the board is configured (e.g. 4/5 on a board with no Team mappings) |
Omit completionType and let the server pick 2 (or 6 for OKR boards) |
Linked items missing tfsId / tfsURL |
The board is connected to Jira, not Azure DevOps |
Look for jiraId / jiraKey instead. See Compatibility notes |
Linked items missing jiraId / jiraKey |
The board is connected to Azure DevOps |
Look for tfsId / tfsURL |
teamsAndSprints missing on linked items |
additionalColumns not set |
Add &additionalColumns=1 to the request |
teamsAndSprints present but empty array |
Item not assigned to any team / sprint on the board |
Confirm the assignment in the Kendis UI |
bvActual / achievement always missing |
The board has BV Achievement disabled in its module configuration |
Enable in Kendis → Board → Module Configuration |
| Boards filter ignored |
Used singular collectionId in the query string |
Switch to plural collectionIds |
collectionIds=X,Y returns no boards |
One of the collection IDs is wrong |
Re-fetch from List Collections and copy IDs verbatim |
Sporadic 504 |
Gateway timeout on a large board |
Retry with backoff; for very large pulls, split by board and parallelise across boards rather than across objectives in one board |
Request from kendis.io is denied |
Hitting <companyPrefix>.kendis.io/api/… directly |
Use rest.kendis.io/api/<companyPrefix>/… instead |