Skip to content
Skip to documentation content

Documentation home / Access and workspaces / Join from an invitation

Join from an invitation

Join the invitation's workspace using a current roster account on the correct server and alliance.

At a glance

In Trapitan: /workspaces/join/{public_id}.

Who can open this page: Active invite resolves; signed-out users redirect to Discord login; invalid/expired/revoked links render terminal errors.

What you see

An active invitation opens a separate Join page showing Workspace, Travian server, Alliance, Expires and Invitation status. Search Your Travian name and select a roster suggestion. The selected alliance appears beneath the picker. Join stays disabled until the selection is eligible; an ineligible selection explains which alliance the workspace is for. Cancel returns to the workspace selector.

Who fills in each field

The invitation chooses the destination workspace and server. You choose a roster player, not a different workspace, server or alliance. The expiry and status are read-only here. The invitation is reusable; it does not target a preselected individual account.

Field or data What it means Who fills it in Can it be changed here? When it updates
Workspace, server and alliance Read-only destination from the invitation workspace; creator does not target an individual account. workspace-manager, roster-ingest Read-only Link resolution
Your Travian name You select a current roster player; join rechecks alliance equals the workspace alliance and active user-server membership. signed-in-member, roster-ingest Joining member chooses player ID Roster search / transactional join
Expires and status UTC expiration boundary and active/expired/revoked status; links remain reusable after a successful join. workspace-manager, backend-derived Read-only Link resolution and transaction recheck

Calculations

No derived values on this page.

Freshness and updates

Opening an active link records a pending invitation in your web session. If signed out, you are sent to Discord sign-in and normally returned to the Join page. The server reads roster suggestions for the invitation server and rechecks the link, workspace, roster alliance and membership at join time. Expires shows the stored boundary in UTC; a previously opened page can become expired or revoked before submission.

Actions and permissions

Who can take action: The actor and permission for each action are listed below. Who can perform each action depends on the server's checks, independently of whether navigation or a button is visible.

Action Actor Permission
Join signed-in-member Authenticated user, same-origin request, pending active invite, roster alliance match, one active user/server membership; repeated same-workspace join is idempotent
Cancel signed-in-member Same-origin request clears pending invite; no membership created

In Trapitan, enter at least two characters, choose your current account and use Join only when the alliance matches. Successful join clears the pending invitation and returns to Choose a workspace. The link remains active for other eligible users until it expires or a manager revokes it. Join requires authentication and a same-origin request; the account must belong to the workspace's server and exact alliance. Cancel clears the pending invitation through a same-origin request and creates no membership.

States and edge cases

Malformed or unknown links produce a terminal missing-link page (404). Expired or revoked links produce a terminal error (410) without a join form. The legacy invitation address redirects to this Join page. A missing pending invitation prevents join/search. Roster search failure is displayed beside the form; changing search text clears the prior selection. If the account leaves the alliance or the invitation expires/revokes during the flow, the server rejects the join. A user may have only one active membership on a Travian server. A repeat eligible join to the same workspace returns the existing membership without changing its linked account or adding another attribution. A membership in a different workspace on that server is a conflict. New joins receive collection permission, but still need verification and enabled entitlement for protected features. Extension collection additionally matches the active server and game account to that membership.

Source references

Source reviewed: 2026-10-05

Source references

Stable page ID: access.join-invitation.

  • src/trapitan/api/routes/invites.py
  • src/trapitan/web/templates/workspace_join.html
  • src/trapitan/memberships/service.py
  • src/trapitan/web/static/js/workspace-invitation-join.js