Skip to main content

Common errors

This page collects the error states you might run into across the whole app — sign-in, permissions, uploads, payments, AI assistant, background jobs, and mobile — and explains what each one means and how to resolve it. For step-by-step triage when you do not know what is wrong, start at Troubleshooting.

Many error wordings change over time as the product evolves. Where the exact string is uncertain, we say "wording is similar to" instead of quoting it; treat that as guidance rather than a precise grep target.

Authentication and session

"Invalid email or password"

You see this on the sign-in page after submitting credentials. Three common causes:

  • A typo in the email or password.
  • The account is disabled (a national admin or platform admin can disable accounts).
  • You are signing in to the wrong server. The mobile app supports a hidden server selector — triple-tap the version label on the login screen to check.

If you cannot resolve it, ask a national admin to confirm your account is active and that the email on file matches what you are typing.

"Your session has expired" / sudden redirect to the sign-in screen

The session was valid but its refresh window elapsed. The platform's refresh-token lifetime is 24 hours (down from 7 days in v0.45.0 as part of the security hardening). If you have been signed in for over a day, you need to sign in again.

There is no auto-renewal across the 24-hour boundary by design. Sign in again and you are back to normal.

"Too many login attempts"

You hit the rate limiter. Wait 5 to 15 minutes and try again. If you cannot remember your password, use the password-reset flow rather than retrying — repeated failed attempts extend the cool-down window.

SSO redirect loop

You click sign in with SAML or OAuth, get bounced to the identity provider, and end up back on the GreekManage sign-in page without ever being signed in. The usual cause is a stale or recently-renewed IdP certificate that GreekManage no longer trusts.

Two things to try first:

  1. Sign out of the IdP in another browser tab, then try GreekManage again.
  2. Try a private/incognito window to rule out cookie state.

If the loop persists, the SSO configuration probably needs an update. Tell your national admin; the fix is on the SSO with SAML configuration page on the GreekManage side.

"Account pending assignment"

You signed in successfully but the account is not attached to a chapter. This usually means an admin invited you (or you came in via SSO with a new email) but no membership has been created yet. Contact your chapter or national admin to ask them to assign you to a chapter.

Passkey errors

Passkey-specific sign-in errors are catalogued in Troubleshooting → Sign-in — "Sign in with a passkey" not appearing, "no passkeys found," "credential not recognized," "no matching account," and what to do if you lose the only device that has a passkey.

Permissions

"You do not have permission to view this page"

Two different things can produce this message. The fix is different for each.

  • Module disabled. The page belongs to a module that is not enabled for your organization. Even national admins cannot see it. The fix is for a platform admin to enable the module on the platform settings page. Modules are licensable per organization — see Module enablement for which modules exist and what they unlock.
  • Role insufficient. The module is enabled but your role does not allow this specific page or action. For example, a member trying to reach the org admin chapter-list page. The fix is to ask a national admin to grant you the appropriate role, or to ask someone in that role to take the action for you.

If you are not sure which case applies, a chapter officer or national admin can usually tell from their own view of the same URL.

"Module is not enabled for this organization"

A more specific variant of the previous message. Only a platform admin can enable a module. Contact the person or team that maintains your GreekManage deployment.

Officer or admin button missing on a row you expected to be able to edit

The frontend hides write buttons when your role does not have the necessary permission. If you are a chapter officer and a row says "view-only" or shows no edit affordance, the most likely reason is that the row belongs to a chapter or region outside your scope. For example, a regional admin viewing a chapter outside their region sees the chapter but no edit buttons.

If you believe the scope is wrong, contact the person who assigned your role (national admin for chapter-officer or regional-admin roles).

Uploads

"File too large"

Each upload surface has its own cap. The most common limits:

  • Photos (album uploads): 20 MB per file
  • Documents (governing docs, learning materials): 50 MB per file
  • Compliance attachments: 25 MB per file
  • Forum attachments: 25 MB per file
  • PNM application attachments: 25 MB per file
  • CSV / XLSX bulk imports: 10 MB per file

Compress the file, split it into parts, or upload to your org's storage and link instead.

"Unsupported file type"

The platform validates the type of every uploaded file before accepting it. Two checks run:

  1. The browser-declared content type must be on the allowlist for that surface.
  2. The server reads the first few bytes of the file (the "magic number") and confirms the type matches the extension. This catches files that have been renamed to look like a different format.

If you hit "unsupported," the file is either genuinely the wrong type or its first bytes do not match the extension (sometimes happens with files that were edited and re-saved by an old tool).

iPhone HEIC uploads are currently rejected by the photo upload surface. The error message references HEIC, but the actual photo allowlist does not include it. The workaround is to change your iPhone's camera format from "High Efficiency" to "Most Compatible" (Settings → Camera → Formats), or to upload from a Mac that has already converted the photo. This mismatch is a known issue and will be reconciled in a future release.

"File appears corrupted"

The magic-byte check rejected the file. Either it really is corrupted (try opening it in its native app) or the wrong extension was applied (rename and retry). Compliance attachments are the one upload surface that does not currently run this validation — every other upload route does, including PNM, forums, learning, and photos.

Upload silently stalls at 99%

Almost always a network issue, often on hotel or conference Wi-Fi that drops packets without dropping the connection. Switch to a different network and retry. If the file made it to the server but the response timed out, it may show up after a refresh; check before re-uploading to avoid duplicates.

Forms and validation

"Email address is already in use"

A different account already has this email on file. With multi-email auth (shipped v0.36.0), a single user can have multiple emails attached to one account, so this error sometimes confuses people: it does not mean you, it means a separate account already claims that address.

If you control the other account, sign in there and remove the email, then add it on this account. If you cannot, ask a national admin to disable the other account or to reassign the email.

Date pickers / "End date before start date"

The frontend forms enforce ordering on most date pairs (e.g., a billing period's start must be earlier than its end). Two exceptions worth knowing:

  • Event end time vs start time. The frontend event form does not currently validate that end_time > start_time. The backend accepts the invalid duration and saves it. You can produce events with negative duration; they render with a confusing end-before-start time on the calendar. This is a known issue. The workaround is to check your end time before saving.
  • Survey close date. A survey marked Active continues to show "Active" in the admin UI after its close date has passed. Submission attempts will be rejected with a closed-survey error, but the visual status is stale. Refreshing the page does not change this. Also a known issue.

"Required field" hints

The standard "this field is required" indicator appears below any field that the form expects to be populated. There is no batch-validation mode — each required field is highlighted individually as the form is submitted.

Payments (Stripe)

Card declined

You see a generic "card declined" message from Stripe. This can come from your bank for a number of reasons:

  • Insufficient funds
  • Card expired
  • Card has been flagged for fraud monitoring
  • Billing address mismatch (AVS fail)

Call the bank or try a different card. For ACH (US bank transfers), declines typically come from incorrect account info, insufficient funds, or ACH being disabled by your bank.

3D Secure / Stripe Authentication

For European cards and a growing number of US cards, your bank will prompt for an additional authentication step (usually a push notification or a one-time code). This is normal and not a sign of an error — complete the prompt and the payment proceeds.

"Webhook verified" but webhook events fail

If you are a national admin configuring a payment processor and you see a green "Verified" badge after saving without actually entering a webhook signing secret, the badge is misleading. Webhook events from Stripe will then be rejected because the signing secret does not match. The fix is to re-open the processor configuration and enter the webhook signing secret from your Stripe dashboard. This is a known issue tracked in the backlog; until it is reconciled, the green badge does not by itself prove webhooks are functional — confirm by triggering a test event from Stripe.

"Payment failed" but no transaction visible

For cards: usually instant. If it has been over 5 minutes and you do not see the payment, it likely failed at the bank — try again with a different card.

For ACH: 3 to 5 business days. Manual payments (cash / check) require an officer to record them and do not appear until then.

Background jobs

Bulk import row marked "Failed" but the member looks correct

The bulk import runs row creates in batches. Under concurrency, transient database conflicts occasionally mark rows as "Failed" even though the underlying member data would have been valid on retry. This is tracked in the backlog. The workaround is to take the failed rows from the import error report, paste them into a new XLSX, and re-run the import — duplicate detection catches the rows that did succeed on the first pass.

XLSX export does not appear

The dues XLSX export task writes the file to platform storage but does not currently surface a download button or send an email. The export is generated, but you need filesystem access to retrieve it. This is a real gap (tracked in the backlog as item 2.2) — the working workaround for now is to ask the platform admin to fetch the file, or to use the CSV export from the member directory or invoice list as an alternative.

Bulk import progress bar stuck near the end

The bulk import shows a progress bar over rows imported, but the big-little resolution pass (linking new members to their proposed bigs) runs after the row imports and does not have its own progress signal. The bar appears stuck at a high percentage while the resolver runs. Wait for the import to complete; the resolver is single-pass and finishes within a minute or two for typical imports.

AI assistant

"Sorry, I could not generate a response right now"

The AI provider returned an error. Most common causes:

  • The org's AI provider key is invalid or has been revoked
  • The provider's rate limit was hit for the org's plan
  • The model name configured is not currently available on the provider

The fix is on the AI Assistant settings page — re-verify the key, check the model name, switch to a different provider, or fall back to the platform default. If your org is using the platform default and that is failing, contact your platform admin.

"I'm not sure how to answer that"

The chatbot did not find enough relevant context for your question. Try:

  • Rephrasing more specifically
  • Adding context ("In our chapter..." or "For this semester...")
  • Asking a simpler or more direct question

If the chatbot consistently misses on the same kind of question, an org admin can adjust the content scope to make sure the relevant content types are being indexed.

Conversation history disappears between sessions

This is by design. The AI chatbot keeps the recent turns of your conversation in memory while the chat panel is open. Closing the chat or refreshing the page resets the conversation to a fresh state. There is no persisted thread history. If you have a follow-up question hours later, treat it as a new conversation and include the relevant context up front.

Per-message thumbs-up / thumbs-down feedback

There is no message-level feedback on individual AI responses. The general "Feedback" tab in the user menu (the platform feedback inbox surface) is for overall platform feedback — bugs, feature requests, general — not for rating a specific chatbot response. If you want to give feedback about an AI response, leave it through that tab and reference the conversation context.

Mobile-specific

Biometric prompt did not appear on first launch

Biometric unlock is opt-in. The prompt appears once on first sign-in. If you skipped it or chose No, the prompt does not return on its own. Enable it later from Account settings → Security → Biometric.

"No internet connection"

Capacitor's network status check is telling you the device has no connectivity. Most read views still work from cache. Writes (forms, posts, uploads) will be rejected and surface "Will retry when online" — the action is queued and re-submitted automatically when connectivity returns.

Pull-to-refresh does nothing

The pull-to-refresh gesture only fires when the page is scrolled all the way to the top AND the swipe is unambiguously downward. If you start dragging when the page is mid-scroll, the gesture is treated as a scroll, not a refresh. Scroll to the very top first and then pull.

App says "Update required"

A required-update gate enforces critical security or compatibility fixes. Update via the App Store (iOS) or Play Store (Android). The app will not let you proceed without updating.

Generic fallback

"Something went wrong"

The frontend hit an unhandled error and showed its fallback message. Two things to do:

  1. Refresh the page. Most one-time errors clear on a refresh.
  2. Report it. Use the in-app feedback widget (user menu → Feedback) with a short note describing what you were doing, the URL you were on, and the approximate time. If the error is reproducible, include the steps to reproduce.

Org admins do not see these reports directly; platform admins triage them from the platform feedback inbox. If the error is blocking you and you need an immediate response, tell your national admin alongside submitting feedback.

Last verified against v0.62.1 (2026-05-11).