PI Objectives · Troubleshooting¶
V1 API¶
For milestone and phase issues see Milestones & Phases troubleshooting.
| Symptom | Likely cause | Resolution |
|---|---|---|
404 {"error": "No PI board found with the given ID."} |
The ID was copied from the browser URL, the board belongs to another company, or the API user cannot open the board's collection | Take {boardId} from GET /api/v1/boards. Open the board in Kendis as the same user to confirm access. |
404 on /objectives/{keyOrId} or /key-results/{keyOrId} |
The key is on a different board (or a Strategic Theme), or an objective key was sent to a key-result route | Use keys listed by this board's /objectives and /key-results routes |
404 on /objective-groups/{groupId}/objectives |
The group is not on this board | Use an id from this board's /objective-groups |
400 "uses the legacy objectives view" |
The board's objectives live in the legacy objectives view | Use the legacy endpoint for this board |
400 "Invalid value for parameter '…'" |
A paging value such as pageLimit or startAt is not a whole number |
Send whole numbers, e.g. pageLimit=50 |
409 "has objectives but no objectives settings" |
The board's objectives settings are missing | Contact Kendis support. Milestones and phases of the board can still be read (Milestones & Phases API). |
| A board returns zero counts and empty lists | The board's Objectives screen has never been used | Expected. okrEnabled / uncommittedObjectivesEnabled are also absent until it is |
A Target key result has no baseline (or target, current) |
That value is not set, or is not a number | Expected; only numeric values are returned |
Parser finds no data key on a /pi-boards response |
These routes use capital Data |
Read Data. Note that GET /api/v1/boards uses lowercase data. |
completionPct missing on a row |
The board's progress calculation produced no value for it (e.g. an objective group with no objectives) | Treat as "not computable", not as 0 |
A Feature shows storyPoints: 0.0 but the board shows points |
The points are on its stories | Read childrenSummary.totalStoryPoints with expand=children |
childrenSummary / children missing |
expand not set |
Add ?expand=children |
Fewer rows in Data than total on linked-items |
A linked card is no longer on the board | Expected; total counts links, Data lists cards still on the board |
| Only 50 rows returned | pageLimit is capped at 50 |
Page with startAt until startAt + Data.length >= total |
Legacy endpoint¶
| Symptom | Likely cause | Resolution |
|---|---|---|
404 {"error": "Invalid company prefix in URL."} |
Wrong <companyPrefix>, or your user belongs to a different company |
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 doesn't exist in your company, 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 |