White-Label Issues
Fix custom domain, branding, and enterprise licensing problems.
Domain Shows "Invalid Configuration" in Vercel
DNS hasn't propagated yet, or the CNAME target is wrong.
Check DNS
nslookup crm.yourdomain.com 8.8.8.8This should resolve to the Vercel CNAME target (e.g., cname.vercel-dns.com), NOT cname.leenops.com.
Fix
- Go to your DNS provider (registrar)
- Ensure the CNAME record points to the exact target shown in Vercel
- Wait up to 48 hours for global propagation
- In Vercel, click Refresh on the domain card
Login Page Shows Leenops Branding Briefly
A brief flash of default branding can happen on first visit.
Expected Behavior
- First visit: neutral spinner for ~100ms while branding loads
- Subsequent visits: instant from
sessionStoragecache
If It Persists
- Clear browser cache and cookies
- Check browser DevTools → Network tab for failed
/api/white-label/resolvecalls - Verify your custom domain is set in Settings → Administration → White Label → Domain
Admin Dashboard Shows Empty Table
- Verify your email is in the
PLATFORM_ADMIN_EMAILSenvironment variable - Check the browser Network tab — the API should return 200
- Ensure
white_label_configstable has rows in the database
Trial Paywall Blocks Provisioned Workspace
Check these database values:
SELECT status, provisioned_by
FROM workspace_subscriptions
WHERE workspace_id = 'your-workspace-id';statusmust be'active'provisioned_bymust be'admin'
If either is wrong, re-provision the license via the Admin Dashboard.
Custom CSS Not Applying
CSS is sanitized before injection. Stripped items include:
@importrulesurl()with non-httpsprotocolsjavascript:URLsexpression()andbehavior:(IE-specific)
Fix
Use only inline CSS rules with https: URLs:
/* ✅ Good */
.my-class { color: #2563eb; background: url('https://example.com/bg.png'); }
/* ❌ Bad — will be stripped */
@import url('...');
.my-class { background: url('http://...'); }License Compliance Alerts
The daily compliance cron checks member count vs. licensed seats.
If You Receive a Violation Alert
- Go to Admin Dashboard → White Label
- Find the workspace
- Click Provision License and increase seats
- Or reduce workspace members to fit within the license
Auto-Expiry
Licenses past their license_end date are automatically set to expired. To renew:
- Go to Admin Dashboard → White Label
- Find the workspace
- Click Provision License with a new expiry date
Users Can't Register on the Custom Domain
This is by design. Self-serve signup is disabled on white-label domains — /register redirects to /login and the trial link is hidden. White-label workspaces are invite-only:
- Go to Settings → Administration → Members
- Invite the user by email — the invite link points to your custom domain
Login Page Immediately Redirects Somewhere Else
A Login Redirect URL is configured (the SSO escape hatch). Anyone visiting /login on your domain is sent to that URL.
To restore the branded login form, clear Settings → Administration → White Label → Login Page → Login Redirect URL and save.
A Sign-in Button Is Missing
Sign-in methods are configurable per workspace. Check Settings → Administration → White Label → Login Page → Sign-in Methods — only the enabled providers render on the login page.
Support Requests Still Reach Leenops
The workspace has no Support Email configured. Without it, in-app requests fall back to Leenops's support pipeline. Set it in Settings → Administration → White Label → General → Support Email.
Documentation Tile Missing from the Help Panel
On white-label workspaces the Leenops docs are always hidden. The Documentation entry only appears when a Documentation URL is set — add yours in the General tab.

