Skip to content

Troubleshooting ​

Sign-in ​

SymptomLikely causeWhat to try
Invalid credentialsWrong password or tenantConfirm subdomain (or use Find your school portal) and ask admin to re-invite
Cannot remember the portal URLForgot the school subdomainOpen schoolrota.com/login and enter the school name or the short name from the welcome email
No password reset emailSSO-only account or unknown emailUse school SSO, or ask an admin to confirm your login email
Reset link invalid or expiredToken older than one hourRequest a new link from Forgot password?
Reset works locally but not productionEMAIL_PROVIDER=consoleSet EMAIL_PROVIDER=resend and RESEND_API_KEY in deployment
No Microsoft / Google buttonSSO not activatedUse email/password; see SSO setup
Portal URL is one school, screen shows anotherStill signed in to a previous school (path-mode cookies on localhost are shared across /t/{school})Use Sign in to this school, or open the school you are already signed in to. Production hostnames isolate sessions per school
Staff app says it is not enabledOperator has not turned on Staff companion appAsk SchoolRota support to enable staff_app for the school
Staff app Face ID fails after a new fingerprintDevice lock enrolment changedSign in with school SSO or password again, then turn Face ID back on

SCIM provisioning ​

SymptomLikely causeWhat to try
401 from IdP testWrong or revoked tokenGenerate a new token in Admin → SCIM provisioning
403 SCIM not enabledFeature flag offEnable scim in operator flags or generate a token (auto-enables on some setups)
User synced but cannot sign inSCIM ≠ SSOSend manual invite or wait for SSO activation
409 duplicate userEmail already existsRemove manual invite or deactivate old account
Groups not syncingNot supported yetAssign users directly in the IdP

See SCIM provisioning.

Outlook calendar sync ​

SymptomLikely causeWhat to try
Integration page missingoutlook_calendar flag offNew schools have it on. Operator can enable it in /operator
Health check failsEntra permissions / UPNVerify app registration, admin consent, mailbox scope
Sync job failedGraph throttling or mailbox permissionRetry job in Admin; check Entra consent and the person Last error column
No events for staffPerson sync off or no emailEnable per-person sync; add email in staff directory

See Outlook calendar.

Microsoft profile photos ​

SymptomLikely causeWhat to try
Integration page missingentra_profile_photos flag offOperator can enable it in /operator. Missing flag counts as on
Health check failsEntra User.Read.All or wrong tenantVerify app registration, admin consent, and the health-check mailbox
Initials never changeNo portal access or email mismatchInvite or provision the person; match directory email to Entra UPN
One person missingNo Microsoft photo or Graph errorCheck the Staff table last error; refresh photos after they add a photo in Microsoft 365

See Microsoft profile photos.

Google Calendar sync ​

SymptomLikely causeWhat to try
Integration page missinggoogle_calendar flag offOperator enables flag in /operator
Health check failsDomain-wide delegation / scopeVerify client ID, Calendar scope, staff test email
Sync job failedAPI error or mailbox permissionRetry job in Admin; check the person Last error column
No events for staffPerson sync off or no emailEnable per-person sync; publish the day first
Disconnect stuckCleanup jobs pendingWait for cron; check recent sync jobs for errors

See Google Calendar.

Setup and staff ​

SymptomLikely causeWhat to try
No template slotsDay structure not savedAdd duty areas and a time window on the Day structure setup step
Same duty twice on the scheduleSuggested posts or import added the same area with a different codeUse Remove extra from all rotas on Day structure or Admin → Cover rules
Import preferences wrongMissing column / fill coloursUse explicit Cover preference column in CSV
Person missing from assign listInactive / not imported / erasedCheck Staff directory
Person on cover while on leaveOnly day absence recordedUse Long-term leave on Staff → Edit
Part-time staff over-assignedNo working patternSet working days & hours on staff record
Cannot erase staff memberTenant owner or already erasedTransfer ownership first; erasure is one-way
Want the setup wizard from scratchLoaded demo data, wrong rota, or a botched first passPress Start over at the top of Setup and choose a new staff list or rota. Before go-live, the owner can also type the school name to wipe this school's rota data. After go-live a full wipe is not available; add another school if you need a clean school
GDPR export empty or failsPermissions or erased profileUse admin account; export unavailable after erasure

Today and cover ​

SymptomLikely causeWhat to try
Empty boardNot built yetSelect Build day on Today or Timetable
Cannot publishMissing rota.publishSign in as duty lead / admin
Persistent unfilled postsInsufficient eligible staffAdjust cover preference, headcounts, or accept only-if-needed cover
Amber clash tagsTeaching, weekly block, or same-time other-school overlapReview manually. Teaching and weekly block clashes block publish only if Cover policy is set to block for that kind. Same-time duty at another school is At risk after a confirmed override and does not block publish
Publish blocked (teaching)Cover policy = block and lesson clash on boardFix assignments or set Admin → Cover policy to warn-only
Publish blocked (weekly block)Cover policy = block and a PPA or similar block clash on boardFix assignments or set Admin → Cover policy to warn-only
Publish blocked (class cover)Cover policy = block and lessons still need coverAssign cover, mark not required, or set Admin → Cover policy to warn-only
Board staleSSE lagWait ~15s or reload

Notifications ​

SymptomLikely causeWhat to try
Empty inboxNo matching rule / no publish yetPublish a day; check rule audience/channels
No email in localEMAIL_PROVIDER=consoleRead server console logs
Email delayed until morningQuiet hours or digest enabledCheck Notifications → Automatic email settings
Same-day change not emailedEmail toggle off for that triggerEnable “Same-day change” in email settings
Digest never arrivesCron not scheduledSchedule GET /api/cron/notification-digest. See Deployment
Scheduled rota email never arrivesCron not scheduled, or board not publishedSchedule GET /api/cron/rota-document-email. Confirm the day or week is published and the send time uses the school timezone
Staff say no emailCheck Recent sends delivery logConfirm recipient has user account + email

Exports and rota email ​

SymptomLikely causeWhat to try
Empty fileDay not materialisedBuild the day/week first
PDF missing coloursBrowser print settingsEnable background graphics
Email rota: zero recipientsNo emails or empty boardAdd staff emails; build board before On rota only
Email rota failedEmail provider misconfiguredSame as notification email - not console in production

Teaching timetable / hosted CSV ​

SymptomLikely causeWhat to try
CSV pull: all unmatchedStaff emails/names differ from importMatch Staff directory; check Last sync summary samples
CSV pull: zero rowsEmpty CSV or wrong URLOpen URL in browser; verify columns
Looking for SIMS, Arbor, PowerSchool or iSAMSNative MIS connectors are coming soonExport a CSV from your MIS and import it, or host the file and use Sync now

Operator impersonation ​

SymptomLikely causeWhat to try
Cannot impersonateTarget is operator accountImpersonation blocked for platform operators
Session ended unexpectedlyImpersonation timeoutStart a new session from /operator
Tenant user sees bannerExpectedRead-only support session; user is notified

See Support impersonation.

Still stuck? ​

  • Check the Admin → Change history tab for recent changes
  • Developers: see Local setup and docs/SYSTEM_PLAN.md

SchoolRota documentation. Every slot covered, every day.