In this story
AI assistant and AI rules
| Code | You see | Why and what to do |
|---|---|---|
| AI_PROVIDER_NOT_READY | "The AI assistant isn’t connected yet. Connect your free OpenRouter account in Settings → Content & publishing → Your AI accounts." (also: "Connect your account for this AI in Settings → Content & publishing → Your AI accounts." / "This AI is switched off in Settings → Content & publishing → AI rules." / "Private AI on your server is a paid add-on." / "Private AI needs a larger server (8 GB of memory or more)." / "Private AI is being installed. Try again after the next update." / "The AI on your server isn’t running right now. Try again in a minute." / "The AI on your server needs the latest software update first." / "Choose a model for this AI account first.") | The AI you chose isn't ready. Follow the sentence you see. |
| AI_NOT_CONNECTED | "Connect your AI first. Use free models through OpenRouter, or add your own key for Claude, Gemini, OpenAI and more." | Keynate sells no AI credits. Connect your own AI. Use your own AI key |
| AI_QUOTA_EXHAUSTED, AI_CREDITS_USED | A message that the AI is used up for this period. | Keynate sells no AI credits, so this comes from the AI account you use. Check your balance with your provider, or connect another account in Settings → Content & publishing → Your AI accounts. Then run Check my AI. |
| AI_LIMIT_REACHED | "This request reached its AI limit. Try a smaller change." / "You used today’s AI allowance. It resets at midnight UTC." / "Your monthly AI limit is reached. Raise it in AI settings or wait for next month." | Follow the sentence you see. |
| FREE_AI_LIMIT_REACHED | "Too many AI requests this minute. Wait a moment and try again." Or: "The free AI models on your OpenRouter account are busy or at their daily limit. Try again later, pick another model, or add OpenRouter credit." | The limit is on your own OpenRouter account. Wait, pick another model, or add credit there. |
| FREE_AI_NOT_CONFIGURED, KEYNATE_AI_NOT_CONFIGURED | "Connect your free OpenRouter account to use the AI assistant." | Connect OpenRouter, or any AI account, in Settings → Content & publishing → Your AI accounts. |
| AI_DISABLED | "Your site’s AI policy doesn’t let your role use AI." (also: risk level, legal desk, workflow stage, provider not allowed, feature switched off) | Ask the owner to change AI rules. |
| AI_UNAVAILABLE | "AI isn’t available right now. Keep writing; you can try again in a moment." | Try again later. |
| AI_PROVIDER_ERROR | "The AI provider had a problem or refused the key. Check AI settings and try again." | Open the AI error card. If it names a reason, follow it: see the next section. If not, run Check my AI. |
| AI_REQUEST_TOO_LARGE | "The AI request is too large." | Ask for less. |
| AI_APPROVER_REQUIRED | "This story’s risk needs another role to approve its AI-assisted text." | Ask an approver. |
| AI_CHANGE_NOT_ALLOWED | "This change can’t be built now." | Ask for a smaller change. |
| AI_TOOL_FORBIDDEN | "The AI assistant can’t do this. Licences, billing, passwords and keys, security, deletes and server or domain changes are always done by you." | Do it yourself. |
| AI_CONFIRMATION_NOT_FOUND | "This confirmation has expired or was already used. Ask the assistant again." | Ask again. |
| AI_HELPER_UNAVAILABLE | "AI drafts aren’t available right now. Write the key points yourself or try again later." | Write it by hand or try later. |
| CRITICAL_CONTENT | "This story touches a critical topic, so a person has to approve it before it goes live." | A person approves it. |
AI provider reasons
These reasons show on the AI error card and on Your AI accounts.
| Reason | You see | What to do |
|---|---|---|
| ACCESS_OR_BILLING | "(Provider) refused this model for your account (access, region or billing). Your key is fine: check billing with (Provider), or pick another model." | Your key is saved and valid. Tap Pick another model, or Check billing on your provider. Do not replace the key. |
| AUTH | "(Provider) refused this key. Copy the whole key again from your (Provider) account and paste it here." | Only this one asks you to reconnect. Tap Fix my key and paste a fresh key. |
| CREDIT | "Your (Provider) account has no credit left. Add credit on (Provider), then test again." | Add credit, then tap Test again. |
| RATE_LIMITED | "(Provider) is limiting requests right now. Wait a minute and try again." | Wait, then tap Try again. |
| MODEL_GONE | "This model or deployment isn’t available on your (Provider) account." | Check the name or pick another model. |
| NO_TOOLS | "This model can’t make site changes (it doesn’t support tools). Choose another model." | Tap Pick a capable model. |
| DATA_POLICY | "Your (Provider) privacy settings block these models." | Change the settings at your provider, then test again. |
| PROVIDER_DOWN, TIMEOUT, UNREACHABLE | The provider is not answering, took too long, or could not be reached. | Try again in a few minutes. |
To test the whole path, run Check my AI. A valid key is always saved, even when one of these needs a fix.
AI Autopilot
AI Autopilot is an add-on. It writes drafts on a schedule from sources you allow.
| Code | You see | Why and what to do |
|---|---|---|
| AUTOPILOT_NOT_ATTESTED | "Turn on AI Autopilot first: read the warning and confirm it." | Read and confirm the warning. |
| AI_POLICY_FORBIDS_AUTO_PUBLISH | "Your AI rules say AI never publishes without a person. The owner can change this in AI settings → Governance." | The owner decides. |
| AUTOPILOT_RISK_LOCKED | "This section is marked sensitive, so its AI stories always wait for a person." | A person publishes. |
| AUTOPILOT_PAUSED | "AI Autopilot is paused. Resume it first." | Resume it. |
| RUN_AS_INVALID | "The team member AI Autopilot works as can't create or publish stories. Choose someone else in Autopilot settings." | Choose another member. |
| SOURCE_ROBOTS_DISALLOWED | "That site does not allow AI Autopilot to read it (robots.txt or an AI opt-out)." | Use another source. |
| SOURCE_PAYWALLED | "That page is behind a paywall or a sign-in, so AI Autopilot can't use it." | Use another source. |
| SOURCE_LIMIT | "You have reached the limit of 25 sources. Remove one first." | Remove a source. |
| ORIGIN_MISMATCH | "AI Autopilot didn't write this story, so it can't publish it." | Publish it yourself. |
| SECTION_DISABLED | "Switch this Autopilot section on first." | Switch it on. |
| TREND_NOT_AVAILABLE | "Trend signals are not available for Support sites." | Not for help centres. |
| TREND_NO_SOURCE | "No allowed source covers this trend yet. Add a source for this section first." | Add a source. |
| TREND_ALREADY_DRAFTED | "A story was already written from this trend. Open it from the inbox." | Open the draft. |
| TREND_NOT_FOUND | "This trend is no longer in the inbox." | Pick another trend. |
| TREND_SIGNAL_UNAVAILABLE | "This trend signal can't be read right now. Autopilot will try again later." | Wait. |
| KEYWORD_TAKEN | "Some posts use a keyword that is already taken. Change their keyword or remove them, then approve." | Change the keyword. |
Business posts from your own data
| Code | You see | Why and what to do |
|---|---|---|
| BIZ_FREE_AI_NOT_ALLOWED | "Business data needs your own paid OpenRouter model. Connect one in AI settings." | Connect a paid model in Settings → Content & publishing → Your AI accounts. Business data is never sent to a free model. |
| FREE_AI_EXCLUDED | "This business data connection isn’t allowed to send data to the free AI models. Choose your own paid OpenRouter model for this automation, or allow free models in the connection’s settings." | Choose a paid model, or allow free models in the connection’s settings. |
| BIZ_SITE_NOT_VERIFIED | "Prove this domain to use its photos: add the meta tag or the file shown in Autopilot → Business." | Add the meta tag or file. |
| BIZ_CRAWL_RUNNING | "Your website is being read now. Wait for it to finish or stop it." | Wait. |
| BIZ_CRAWL_LIMIT | "Your website can be read once a day. Try again after {time}." | Try later. |
| BIZ_UPLOAD_TOO_LARGE | "This file is too large. Upload a CSV of up to 5 MB and 2,000 rows, or paste up to 50 KB of text." | Make the file smaller. |
| BIZ_UPLOAD_NO_TEXT | "We found no readable text in this file. Export it as CSV or paste the text." | Export as CSV. |
| BIZ_UPLOAD_TYPE | "This file type can't be read yet. Upload a CSV file (UTF-8) or paste the text." | Use CSV. |
| BIZ_UPLOAD_LIMIT | "You have 50 uploads. Delete one first." | Delete one. |
| BIZ_NO_SOURCES | "Read your website or upload a price list first." | Add a source. |
| BIZ_PROFILE_NOT_CONFIRMED | "Confirm your business profile first: AI writes only from facts you checked." | Confirm the profile. |
| BIZ_PLAN_NOT_APPROVED | "Approve the content plan first." | Approve the plan. |
| BIZ_PLAN_NOT_DRAFT | "This plan was already approved or replaced. Open the current plan." | Open the current plan. |
| BIZ_ITEM_NOT_PLANNED | "Only planned posts can change or be removed; this one is already written." | Edit the written post. |
| BIZ_NOT_ATTESTED | "Read and tick ‘This is my business's website’ again (the text changed)." | Tick it again. |
Questions
Frequently asked questions
Does the AI ever publish by itself?
Only if the owner allows it in AI rules. Many sections always wait for a person. See Who approves AI-written text.