Client says the portal link doesn't work? Run through these three checks.
Check 1: portal sharing toggled on
By default, projects have the portal disabled. Open the project → "Portal" tab → "Enable portal". Until enabled, the portal URL returns 404.
Check 2: client email matches contact record
Portal access is gated by the email address attached to the client contact. If the client uses a different email (e.g. they signed the contract with john@acme.com but log in with john.smith@acme.com), the magic link won't recognize them. Update the contact record or add a secondary email.
Check 3: link expired
Magic links expire after 30 days by default. Re-send from the portal tab → "Send invite". The new link supersedes the old one.
Test as the client
From the portal tab, click "Preview as client". You see exactly what the client sees, including any permission gates.
Disable and re-enable
If nothing else works: disable the portal, save, re-enable, save. This regenerates the URL and clears stale link state.