Skip to content
Troubleshooting

Troubleshooting

Find the message you see, then read the cause and the fix. Messages are quoted from the source; ... marks a part that varies.

The server will not start

MessageCauseFix
refusing to start: no session signing key configuredPULSE_JWT_SECRET is unsetSet it to a new random value. There is no default.
refusing to start: the pulse appfs root cannot be mounted: ...The sealed app root has no usable backendCheck the object store settings, or PULSE_APPFS_DIR for a local root.
Failed to initialize database: ...Usually CORE_ENVELOPE_KEK is missing; the database refuses to open without itProject the key.
refusing to start in production: insecure configuration: ...PULSE_ENV=production and a check failedFix each listed problem, or serve the app same-origin with PULSE_WEB_DIR.
TLS misconfigured: set BOTH PULSE_TLS_CERT and PULSE_TLS_KEY (or neither)Only one of the two is setSet both, or neither.
MESH_MTLS=true but mesh identity unavailable: ...The mesh CA could not be loadedProvide MESH_CA_CERT and MESH_CA_KEY, or turn off MESH_MTLS.
AudioSocket failed to bind and ARI IS configured ...Outbound calling is configured but the audio listener cannot bindFree AUDIOSOCKET_ADDR, or clear the ARI settings.
Server exits with no output, no log fileLocally: pkill -f 'pulse-server serve' killed your own shell, or a bare & job was reapedKill by PID. Start the server in a real background mode.
address already in useA previous server holds the portStop it by PID, then restart.

An unknown EMBEDDING_FORMAT also stops the server at startup. Use qwen3-embedding, nomic-v1.5, or raw.

Signing in

MessageCauseFix
invalid credentialsWrong username or password; you used your email instead of your username; or no break-glass admin was seededSign in with the username. On a local server, start it with PULSE_ADMIN_PASSWORD.
authorization token is not providedThe call had no bearer tokenSend authorization: Bearer <accessToken>.
invalid token: ...The token expired, was signed out, or is from before server-side sessionsSign in again.
token contains an invalid number of segmentsA script read .token; the field is accessTokenRead accessToken.
google sign-in not configured (GOOGLE_CLIENT_ID unset)Google sign-in is offSet GOOGLE_CLIENT_ID.
google sign-in is not available on this instanceAUTH_ALLOWED_EMAILS is emptyAdd the allowed addresses.
this account is not authorized for this instanceThe email is not on the allowlistAdd it to AUTH_ALLOWED_EMAILS.
license expired or invalidA configured licence failed verificationInstall a valid licence.
Log: AUTHENTICATION DISABLED — every request will be rejected as UnauthenticatedThe session key is one authz refuses, such as a published valueReplace PULSE_JWT_SECRET.

AI features

MessageCauseFix
inference server is not running / model service is not ready — the inference server is not runningNo inference server, or it is still loadingCheck INFERENCE_REMOTE_URL or the local model files. Watch model_ready on /health.
the inference plane is at capacity and declined this request; nothing was generated — retry in a few minutesAdmission control refused the callRetry later, or raise PULSE_ADMIT_MAX.
the configured generation deadline cannot pay for a usable answer: ... Nothing was dispatched.The time budget is too short for the decode rateRaise PULSE_GENERATION_TIMEOUT_SECONDS, serve a faster model, or ask for less.
the model returned no content for ...The model produced an empty responseRetry. Check the inference server’s log.
still-image generation is not available: the image-generation tier was retired ...Still images are not supportedRequest a video format instead.
grounding INACTIVE: ... in the logThe embedding endpoint is missing or unusableSet EMBEDDING_URL to an embeddings server. Generators still run, but say they are ungrounded.

Site Audit

MessageCauseFix
could not read ... — a reachable website with readable content is required to run the diagnosticPULSE could not load the siteCheck the URL is public and returns readable HTML.
url is required / repo_path is requiredA field is missing in ApplyAuditActionsFill it in.
apply modes are disabled on this server; set PULSE_APPLY_ENABLED=true (exactly, lowercase) to allow write/commit/prThe kill switch is offUse plan, or have an admin arm it.
github integration is missing a target owner/repo — ...pr mode without a targetSet owner and repo on the GitHub connection.
scoring config: ...PULSE_SCORING_CONFIG is unreadable or invalid, or the profile is unknownFix the file or the profile name.

Leads and connections

MessageCauseFix
HubSpot isn't connected yet — configure it on the Integrations page firstNo HubSpot connectionAdd it under Integrations → Data sources.
HubSpot integration has no access token configuredThe connection has no tokenRotate the credential.
HubSpot sync failed: ...HubSpot rejected the callCheck the token’s scopes.
unsupported lead platform: ... (only hubspot is supported today)SyncLeads with another platformUse hubspot.
a niche is required to prospect for leadsScrapeLeads without a nicheProvide one.
a lead needs at least a name, email, or companyEmpty CreateLeadFill one in.
invalid pipeline stage "..." (want new|contacted|qualified|won|lost)Unknown stageUse one of the five.
outbound calling isn't configured — set up Asterisk and ...ARI settings missingSee Telephony and messaging.
lead has no phone numberNothing to dialAdd a phone number.
Google Analytics isn't connected yet — configure it on the Integrations page firstNo GA4 connectionAdd it under Integrations → Accounts.
no GA4 property ID configured — set it when connecting Google AnalyticsThe connection lacks a property IDReconnect with the property ID.
not enough synced GA data to forecast (... days, need at least 4) — sync more history firstToo little cached dataRun SyncGaData with a longer lookback.

Publishing

MessageCauseFix
website publishing is disabled: ...The blog channel is not armedSee Publishing controls. The message names the layer.
PULSE_SITE_REPO is not set — refusing to publish; set it to YOUR site repo as owner/repoNo target repositorySet PULSE_SITE_REPO.
no github integration/token configured for user ...The content owner has no GitHub connectionAdd one under Data sources.
no publishing integration for channel ... yetThe channel has no publisher, for example Facebook or XNothing to fix; that channel cannot publish.
A scheduled post shows withheldIts channel was disarmed when it came dueArm the channel, then schedule the content again.
Log: PUBLISHCFG-AMBIGUOUS PULSE_APPLY_ENABLED=...The value is not exactly trueWrite true, lowercase.

Voice, billing, media

MessageCauseFix
voice calling is not configured: CALLING_AGENT_URL is unset (HTTP 503)No calling agentSet CALLING_AGENT_URL.
speech synthesis is not configuredNo speech engine is attachedCheck the server log at startup.
media storage is not available: ... / media unavailableThe sealed media store is not mountedCheck the app root’s backend.
no subscription is on record for this deployment (TENANT_ID is not projected); ...Deprecated MeteringService without a tenantSet TENANT_ID, and use BillingService/GetOverview.
compute-unit consumption is not metered by PULSE; ...GetResourceUsage is not implementedExpected. PULSE does not meter usage.
Log: Site Audit Engine: NOT started — no target site; ...No daily audit targetSet PULSE_SITE_AUDIT_URL.

The app looks empty

  • Insights and Impact Analytics show zeros. Expected: no connector fills the per-channel metrics table yet. See Follow up and measure.
  • Approval, Campaigns, and Follow-up are empty. Run a Site Audit. A finished diagnosis fills them.
  • The web app screenshots blank in headless Chrome. It renders with CanvasKit, which does not paint under headless software rendering. Drive the backend over gRPC instead.