Fix “candidate set is empty”
Stub
This How-to is a stub. Candidate sets are implemented, but “one canonical debug path” is still being refined as inventory + policy + ranking evolve.
Goal
You will debug empty CandidateSet results by checking registry inventory, selection constraints, and selection-time policy filtering.
When to use this
Selectionreturns a candidate set withcandidates=[].- Composite execution fails because no candidates exist.
Prerequisites
- Access to
Selection Servicelogs - Ability to list node types from
Node Registry - PDP logs if selection-time policy filtering is enabled
Steps
- Confirm
Node Registryhas inventory:- How-to: List NodeTypes
- Confirm
Selection Servicecan reachNode Registry(network + URL). - Confirm constraints:
- max candidates not set to
0, - allow/deny lists not filtering everything.
- max candidates not set to
- Confirm policy filtering isn’t denying all candidates.
Verify
- The same subtask produces a non-empty candidate set after fixing inventory/constraints/policy.
Troubleshooting
- Inventory empty → seed registry from node packs and restart.
- Policy denies everything → switch to a dev profile to isolate policy vs selection ranking.
- Ranking is too strict → return a small ranked set and let binding decide.
Cleanup / Rollback
- None.
Next steps
- Concept: Candidate sets
- How-to: Implement the mapper