Skip to content

Troubleshooting ​

Start with the exact role, environment, URL, and failing step. Check Aspire logs locally or the affected App Service's application/deployment logs in Azure. Redact tokens, cookies, passwords, connection strings, and attendee text before sharing logs.

SymptomCheck
vite/vitest not foundRun npm ci --prefix src\EventWall.Web
.NET SDK not found/unsupportedInstall the .NET 10 SDK and restart the terminal
Local ports in useStop only the identified old launcher/process; do not kill every dotnet process
Empty/paused new real eventNew non-demo intake starts closed; open it in Admin
Wrong asset role at startupRebuild and deploy the matching Vite/MSBuild/runtime role from a clean output directory
Submission rejects index.htmlA React package was copied to the Blazor site; deploy a clean Submission package
Hosted Public will not startSet its own HTTPS Public__SubmissionSiteUrl; no remote default is supplied
Admin navigation link missingSet/validate Public__WallSiteUrl and Public__SubmissionSiteUrl; inspect the warning
Event slug conflictUse the original slug for that database or provision a separate event database
Missing SQL/table/migration errorsRun the setup tool with the deployment identity; keep app runtime accounts restricted
SQL login/network failureCorrect per-role user/password, database name, TLS, firewall, app outbound IPs
Database purpose mismatchStaging uses EventWallStaging/Demo; Production uses EventWallProd/Production
Staff login unavailableAdmin role plus a configured STAFF_PASSCODE of at least 12 characters
Moderator suddenly unauthorizedAccount disabled/rotated, owner passcode changed, or expired cookie; sign in again
Staff write gets 400Refresh/re-login for a fresh CSRF token; do not bypass CSRF
Question gets 429IP/browser budgets, shared venue NAT, or global limiter; honor Retry-After
Question token expiredUse the form's explicit refresh/retry; don't auto-loop submissions
Turnstile 403/503Widget hostname/action, matching keys, script/network access, verification service status
Blazor reconnects repeatedlyWebSockets, proxy timeouts, affinity, app memory, restarts, blocked browser storage
Approved content not immediately visibleHost refresh is intentional; check selected sort, pins, and new-post count
Withdrawn content remains visibleNext successful 60-second/visibility check; offline walls keep their last snapshot
Promo missingStaff activation and the host's local star/show-promos toggle
Images missingSource/media allowlist, HTTPS, upstream removal, or content policy filters
Source configured but not collectingDemo off, Enabled/PolicyApproved true, credentials, source-specific quota/control
YouTube idleOwner must explicitly Start collection; check active live chat ID
YouTube invalid_grant or reauth setting ignoredExternal Testing-mode tokens expire after seven days; saved rotated tokens take precedence. Follow YouTube reauthorization
X budget exhaustedShared post/profile reservation headroom, UTC-day usage, explicit spend gate
Twitch reauth setting ignoredPersisted rotated token takes precedence; follow the scoped reconnect procedure
GitHub Azure release skippedENABLE_AZURE_DEPLOYMENT=true, manual dispatch on main
OIDC login failsExact repo/environment subject, tenant/client/subscription values, federated credential and RBAC scope
Production gate failsRequired reviewers configured and supported by your GitHub plan; API permission to verify them
Staging readiness probe failsAccess protection, correct role URLs, runtime configuration, and actual app readiness
Docs publication skippedExplicit ENABLE_DOCS_PUBLISH, main branch, public-publication confirmation
Pages CSS/links brokenCorrect DOCS_BASE for project Pages vs custom domain

For provider errors, follow the specific platform guide. Do not fix a failed rehearsal by enabling broad SQL permissions, disabling authentication, ignoring provider approval, or deploying admin assets publicly.

Useful checks ​

powershell
dotnet --info
node --version
Invoke-RestMethod http://127.0.0.1:5080/api/health
Invoke-RestMethod http://127.0.0.1:5080/api/public/event

Health only confirms the process is responding. A wall read exercises database access; Submission's bootstrap intentionally does not. Rehearse a real protected question/approval flow using synthetic data for end-to-end readiness.

Getting help ​

Include the commit/release, OS, SDK/Node versions, role/environment, sanitized error, and minimal reproduction. State whether it reproduces in a clean local demo. Never attach a production database or raw access tokens.

MIT licensed application. Third-party terms remain applicable.