Fix onboarding-status user ID resolution in scheduler path

This commit is contained in:
ي
2026-03-07 12:15:25 +05:30
parent 8b554a35c4
commit 52563849d5
4 changed files with 84 additions and 27 deletions

View File

@@ -50,7 +50,21 @@ class OnboardingProgressService:
try:
# Direct DB access to SSOT session
session = db.query(OnboardingSession).filter(OnboardingSession.user_id == user_id).first()
# Fallback for sanitized/derived IDs (e.g., workspace-safe IDs)
# by comparing normalized IDs from existing onboarding rows.
if not session:
normalized_requested = ''.join(c for c in str(user_id) if c.isalnum() or c in ('-', '_'))
candidate_sessions = db.query(OnboardingSession).all()
for candidate in candidate_sessions:
candidate_user_id = str(candidate.user_id or '')
normalized_candidate = ''.join(
c for c in candidate_user_id if c.isalnum() or c in ('-', '_')
)
if normalized_candidate == normalized_requested:
session = candidate
break
if not session:
return {
"is_completed": False,