pocketbase/pocketbase · error
the user is not active
Error message
the user is not active
What it means
Thrown by the Planning Center auth provider when the user resource's `data.attributes.status` is anything other than "active" (e.g. "inactive", "pending", "disabled"). After a successful token exchange, the provider fetches the PCO identity endpoint and refuses login for non-active accounts. The status string is matched exactly, so any other value fails.
Source
Thrown at tools/auth/planningcenter.go:72
extracted := struct {
Data struct {
Id string `json:"id"`
Attributes struct {
Status string `json:"status"`
Name string `json:"name"`
AvatarURL string `json:"avatar"`
// don't map the email because users can have multiple assigned
// and it's not clear if they are verified
}
}
}{}
if err := json.Unmarshal(data, &extracted); err != nil {
return nil, err
}
if extracted.Data.Attributes.Status != "active" {
return nil, errors.New("the user is not active")
}
user := &AuthUser{
Id: extracted.Data.Id,
Name: extracted.Data.Attributes.Name,
AvatarURL: extracted.Data.Attributes.AvatarURL,
RawUser: rawUser,
AccessToken: token.AccessToken,
RefreshToken: token.RefreshToken,
}
user.Expiry, _ = types.ParseDateTime(token.Expiry)
return user, nil
}
View on GitHub (pinned to 5d217ddb50)
Solutions
- Have a Planning Center admin set the person's status back to active in the organization.
- If login was attempted with a stale session, clear it and re-run the full OAuth flow after reactivation.
- Inspect RawUser to see the exact status string returned and confirm it is an account-state issue, not an API/schema change.
- If your PCO instance uses an unexpected status vocabulary, verify the API response shape has not changed.
Defensive patterns
Strategy: try-catch
Try / catch
user, err := provider.FetchAuthUser(token)
if err != nil && strings.Contains(err.Error(), "the user is not active") {
return errors.New("your Planning Center account is not active")
} Prevention
- Map this to a user-facing 'account inactive' message; retrying the same token will not help.
- Sync PCO account status into your user store if you provision from it.
- Check RawUser for the exact status string when triaging.
When it happens
Trigger: OAuth login with a Planning Center person whose account status is not active; organization admin deactivated the person; the account is still in a pending/invitation state.
Common situations: User removed from a Planning Center organization but their OAuth grant/token is cached in a browser; imported accounts defaulting to a non-active status.
Related errors
- the mailcow user is not active
- the monday.com user account is not enabled
- failed to fetch AuthUser data
- missing response entry
- empty id_token
AI-assisted analysis of pocketbase/pocketbase@5d217ddb50 (2026-08-15).
Data as JSON: /api/errors/939a648ab14b235f.
Report an issue: GitHub.