plandex-ai/plandex · error

error getting org session: %v

Error message

error getting org session: %v

What it means

RefreshAuth calls apiClient.GetOrgSession() to fetch the current org's session data (name, trial status, integrated-models mode). If the server returns an ApiError it is wrapped as this error. It indicates the org session could not be retrieved with the current token/org.

Source

Thrown at app/cli/auth/auth.go:122

		if host == "" {
			host = "Plandex Cloud"
		}

		term.OutputErrorAndExit("Account %s not found on %s", Current.Email, host)
	}

	return nil
}

func RefreshAuth() error {
	if Current == nil {
		return fmt.Errorf("error refreshing auth: auth not loaded")
	}

	org, apiErr := apiClient.GetOrgSession()

	if apiErr != nil {
		return fmt.Errorf("error getting org session: %v", apiErr.Msg)
	}

	Current.OrgName = org.Name
	Current.OrgIsTrial = org.IsTrial
	Current.IntegratedModelsMode = org.IntegratedModelsMode

	err := writeCurrentAuth()

	if err != nil {
		return fmt.Errorf("error writing auth: %v", err)
	}

	return nil
}

View on GitHub (pinned to e2d772072e)

Solutions

  1. Run `plandex sign in` (or RefreshInvalidToken path) to obtain a fresh token
  2. Confirm you still belong to the org; re-select it or list orgs to refresh OrgId
  3. Check server health if self-hosted (logs, uptime, version compatibility)
  4. Inspect apiErr.Msg for the upstream status to distinguish auth vs. server issues

Example fix

// before
org, apiErr := apiClient.GetOrgSession() // stale token -> 401
// after
if apiErr != nil && apiErr.Msg == "unauthorized" {
	if err := auth.RefreshInvalidToken(); err != nil { term.OutputErrorAndExit("%v", err) }
	org, apiErr = apiClient.GetOrgSession()
}
Defensive patterns

Strategy: retry

Validate before calling

if auth.Current == nil || auth.Current.OrgId == "" {
	return fmt.Errorf("no org selected; run sign-in and choose an org")
}

Type guard

func orgSessionReady() bool { return auth.Current != nil && auth.Current.OrgId != "" && auth.Current.Token != "" }

Try / catch

if _, err := auth.RefreshAuth(); err != nil {
	if strings.Contains(err.Error(), "getting org session") {
		// token may be expired: refresh token first, then retry once
		if rerr := auth.RefreshInvalidToken(); rerr == nil {
			_, err = auth.RefreshAuth()
		}
	}
	if err != nil { term.OutputErrorAndExit("%v", err) }
}

Prevention

When it happens

Trigger: Any ApiError from GetOrgSession: 401/403 after token expiry or org removal, 404 for a stale OrgId, 5xx server failure, or network failure surfaced as an ApiError.

Common situations: Expired or revoked token; user removed from the org or org deleted server-side; self-hosted server out of sync with stored OrgId; server-side maintenance/5xx responses.

Related errors


AI-assisted analysis of plandex-ai/plandex@e2d772072e (2026-09-05). Data as JSON: /api/errors/e54e5a9b194dbcbe. Report an issue: GitHub.