Summary
interaction_required and user_unreachable are two distinct conditions and should be modeled distinctly in the spec's polling/terminal error table.
The two conditions
interaction_required — returned in a 202, non-terminal. The PS needs the agent to direct the user somewhere (URL + code). Polling continues.
user_unreachable — terminal error. The PS has no channel to the user and the agent did not declare interaction capability, so there is no way to reach the user at all.
State of the spec
Hellō's current behavior — returning user_unreachable on the missing-capabilities case — is correct. What is missing is user_unreachable itself in the spec's polling/terminal error table.
Proposed change (target: -02)
Add user_unreachable to the polling/terminal error table as a terminal error, with the trigger condition "PS has no channel to the user and the agent did not declare interaction capability." Keep interaction_required as the non-terminal 202 path.
Summary
interaction_requiredanduser_unreachableare two distinct conditions and should be modeled distinctly in the spec's polling/terminal error table.The two conditions
interaction_required— returned in a202, non-terminal. The PS needs the agent to direct the user somewhere (URL + code). Polling continues.user_unreachable— terminal error. The PS has no channel to the user and the agent did not declare interaction capability, so there is no way to reach the user at all.State of the spec
Hellō's current behavior — returning
user_unreachableon the missing-capabilities case — is correct. What is missing isuser_unreachableitself in the spec's polling/terminal error table.Proposed change (target: -02)
Add
user_unreachableto the polling/terminal error table as a terminal error, with the trigger condition "PS has no channel to the user and the agent did not declare interaction capability." Keepinteraction_requiredas the non-terminal 202 path.