You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
Repository navigation
plugin-auth SSO: a SAML account_not_linked refusal redirects to the success callbackURL and ignores errorCallbackURL (OIDC honours it) #30966
Filing gate: (b) a contract gap with a named consumer. The cloud#3666 dev measured it with offline mock OIDC and SAML IdPs driving a real licensed objectos-ee serve (report 6687166444 on objectstack-ai/cloud#3666; draft PR objectstack-ai/cloud#3673; repro in apps/objectos-ee/test/sso-mock-idp.e2e.test.ts). Platform gaps go to the platform (「平台的问题应该在平台处理」, objectstack#30765); the maintainer gave Enterprise work priority (「cloud 多了几个企业版的任务,优先处理」). Consumer: objectstack-ai/cloud#3666 (Enterprise SSO with Okta / Entra ID).
SAML ACS, account-not-linked refusal → 302 to the SUCCESS callbackURL with ?error=account_not_linked; errorCallbackURL is ignored.
OIDC callback, same refusal → 302 to errorCallbackURL.
Expected
The SAML ACS sends every refusal to errorCallbackURL when one is given, as the OIDC callback does. If the cause is upstream (@better-auth/sso), the lane patches it or wraps the ACS, and says which.
Acceptance
Tests: the SAML takeover case lands on errorCallbackURL, and a success still lands on callbackURL.
A SAML account_not_linked refusal redirects to the success callbackURL with an error parameter, and ignores errorCallbackURL. OIDC honours it. Measured on a licensed serve (cloud#3666).
p2 kept: a wrong landing page that grants nothing. Lane domain:server, followed by repo:cloud. pm:queue. If the cause is upstream (@better-auth/sso), the lane says whether it patches or wraps the ACS.
Activity
objectstack-fleet commentedon Nov 6, 2026
triage#1 · os-zhuang · session_01AavokzJ5DndAwitDXvKy4U
Path: none
Triage: audit · p2 kept ·
domain:server· 2026-11-06T14:58Z⛔ Not a claim.
account_not_linkedrefusal redirects to the successcallbackURLwith an error parameter, and ignoreserrorCallbackURL. OIDC honours it. Measured on a licensed serve (cloud#3666).domain:server, followed byrepo:cloud.pm:queue. If the cause is upstream (@better-auth/sso), the lane says whether it patches or wraps the ACS.Generated by Claude Code