This guide covers the problems you'll most often hit with the Daeda AI Automation Suite.
Use the tables first.
Then use the deeper notes if needed.
MCP server will not connect
Bad config, bad Node version, or stdout pollution
/mcp, Node version, MCP config
Invalid key, revoked key, expired trial, or no paid plan
Daeda AI license key and billing state
No connected client portals
Daeda AI > Master Settings > Connected Portals
Initial artifact sync still running
Plugin-backed table not refreshed
status(section="schema") and refresh_plugins
Portal sync disabled and no local DB exists
configure_sync_controls and status(section="connection")
Missing scopes or missing trial/plan entitlement
Daeda AI Write Plan review and re-authorisation
DAEDA_LICENSE_KEY is present
Valid JSON or valid client-specific format
If you see handshake failures, the most important rule is this:
The MCP stdio server must keep stdout clean.
Only MCP protocol frames can go to stdout.
Any normal logging on stdout can break initialisation.
handshaking with MCP server failed: initialize response
Non-protocol output reached stdout
Remove or redirect any custom wrapper logging; logs must go to stderr only
Copy the key again from Daeda AI
Update your MCP config with the new key
Create a new key in Daeda AI
Free trial expired. Choose a Daeda AI plan in HubSpot to continue.
The one-time trial ended and no paid plan is active
Choose a paid plan in Daeda AI
Choose a Daeda AI plan in HubSpot to continue.
No active entitlement exists
Start with a paid plan, or trigger the unused trial by first real MCP registration
Remember:
The free trial starts on first real MCP registration.
It does not start on install.
If registration succeeds but no useful portals appear, the workspace likely has no connected client portals yet.
No connected client portals
In Daeda AI, open and connect a portal
Check that the license key belongs to the intended Daeda AI workspace
Use one of the IDs returned by status(section="connection")
Portal not connected to this workspace
If sync is disabled for a portal:
Reads can use stale local data
Use:
configure_sync_controls(portalId=<id>, portalEnabled=true, refreshArtifacts=true)
This usually means the initial artifact sync is still in progress.
Run:
Then check:
Whether a local DB exists yet
Which tables are already populated
Timed out waiting for portal <id> artifact queue drain.
Enabled portal reads waited too long for artifact work
Retry, or switch to the selected portal and let it finish syncing
Portal <id> has no synced data yet. Background sync in progress - retry shortly.
Local DB is not ready yet
This is expected behaviour.
If portal sync is disabled, the Automation Suite will use stale local data only.
If you need current data, enable sync again.
This is the most common confusion.
CRM object tables and plugin tables do not follow the same freshness rules.
CRM records, associations, workflows
lists, owners, pipelines, forms, sequences, inboxes, subscriptions
If plugin-backed metadata matters, refresh it manually.
Call status(section="schema")
Identify the plugin-backed tables you need
Call refresh_plugins(pluginNames=[...])
Poll status(section="schema")
Wait until the matching job is COMPLETED and the plugin lastRefreshedAt values advance
Plugin '<name>' is an artifact-backed plugin.
You tried to refresh an artifact-backed data source
Do not use refresh_plugins for CRM objects, association_schema, or workflows
Use one of the active lightweight plugin names
Portal <id> has sync disabled.
Plugin refresh is blocked on disabled portals
No registered master MCP client could accept a plugin refresh request
No writable master client is available to execute the refresh
Keep the main MCP client connected and retry
Use these names with refresh_plugins:
Property definitions and groups
Supported workflow action catalog
workflow-enrollment-triggers
communication-subscriptions
Communication subscription definitions
Inboxes, channels, and accounts
Provisioning users, teams, and roles
If Daeda AI shows a re-authorisation action, the target portal is missing scopes needed by the plan.
Missing read or write scope
Re-authorise the target portal with the requested scopes
Missing schema write scope
Re-authorise with the object schema write scope
Missing list-specific scope
Re-authorise with both list write scope and HubSpot access-group write scope if requested
Write Plan execution can be blocked if the workspace has no paid plan and the trial has not started yet.
The fix is to start the trial through a real MCP license-key connection, or choose a paid plan in Daeda AI.
This workspace needs a Daeda AI plan or an unused free trial to connect portals
No entitlement is available
Choose a plan or use the unused trial
This workspace can only connect X portals right now
Portal allowance is exhausted
Buy more portal capacity or disconnect another portal
Use Daeda AI as the source of truth for the workspace state.
Trial status and end date
Daeda AI > Billing or Master Settings
Daeda AI > Billing and Connected Portals
License key count and entitlement
Daeda AI > Master Settings
Sometimes the MCP process serving your request is not the writable owner of the live local DB.
In that case it uses the published read replica.
Reads are coming from the replica
Some sync work is deferred or relayed
The writable master client owns local mutation work
Plugin refresh may be relayed
Keep the main MCP client connected
Use this order:
status(section="connection")
set_portal(portalId=<id>) if needed
refresh_plugins(...) if plugin-backed metadata matters
status(section="schema") again until refresh is replica-verified
Escalate to Daeda support when:
A refresh job stays stuck in REPLICATING or RUNNING for a long time
Replica publication or writable-client execution may be blocked
Artifact-backed data never appears after repeated retries
Initial sync may be failing server-side
Re-authorisation loops even after approving scopes
The portal may still be missing a required HubSpot scope
Registration fails for a clearly valid key with a paid workspace
Account or portal mapping may be wrong