🛠️ Fix OTTO Schema Stuck & Focus Terms Quota

Camilo Aponte

Camilo Aponte

Last updated on Sep 30, 2026

🔍 Overview

Two common issues can appear together in OTTO: schemas that remain in a Not Deployed state even after a successful sync, and a Focus Terms quota that appears maxed out even when you have far fewer active articles than your plan limit. This article explains why both happen and what you can do right now.

⚙️ Why Schemas Get Stuck in "Not Deployed"

After OTTO completes a sync (SYNC_COMPLETE), you may still see a number of schemas listed as Not Deployed. This is caused by one of the following:

  • Stale validation flag: Internally, a schema record can carry an is_valid = false flag from a previous failed generation attempt. Even though the sync finished, OTTO will not push a schema to your site while that flag is present.
  • Silent generation failure: In some cases, schema generation fails without surfacing an error message, leaving the record in a broken state. The Not Deployed count in the dashboard may also not match the number of records actually listed — this is a known display inconsistency that has been resolved in a recent update.
  • Schema needs review: Some schemas are flagged as Needs Review before deployment. These must be reviewed or approved before OTTO will deploy them.

🚀 How to Resolve Stuck Schemas

  1. Navigate to OTTO SEO → All Sites (SEO Automation) in the left sidebar (URL: /seo-automation-v3) and open the Schema section for the affected site.
  2. Filter the schema list by Not Deployed to isolate the stuck records.
  3. Check whether any schemas are also flagged as Needs Review. Open each one and approve or make the requested edits, then save.
  4. Once schemas are in a valid state, trigger a new Sync using the Sync button in the OTTO dashboard. This clears stale validation flags and re-attempts deployment.
  5. After the sync completes, refresh the page and confirm the Not Deployed count has decreased.

If schemas remain stuck after a fresh sync, it is likely the underlying record still carries a stale flag that requires a backend fix. Please contact support using the instructions at the bottom of this article.

📊 Why Your Focus Terms Quota Shows 120/120

The Focus Terms quota counts all articles that have ever been assigned a Focus Term inside OTTO — not just articles that are currently published or active. This means:

  • Articles that have been moved to Trash inside Search Atlas still hold their Focus Term slot. Trashing an article does not automatically release the quota.
  • If you have a large number of trashed articles (for example, 231 trashed articles), those records continue to consume quota until they are permanently deleted.
  • This is why you may see a quota of 120/120 while only ~38 articles appear active in your workspace.

💡 How to Free Up Focus Terms Quota

  1. Go to Content → Content Genius (What are we writing today?) and use Restore article to view your Deleted articles.
  2. Review the deleted articles and confirm you no longer need them.
  3. Permanently delete the deleted articles you want to remove. A permanent delete — not just a move to Trash — is required to release the quota.
  4. Once the permanent deletion is processed, your Focus Terms quota will update to reflect the freed slots.

Important: Permanently deleted articles cannot be recovered. Make sure you have exported or saved any content you may need before deleting.

🛠️ Quick Reference: Common Questions

  • Will a new Sync automatically fix all stuck schemas? In most cases, yes. A fresh sync clears stale flags and retriggers deployment. If schemas remain stuck, a backend correction may be needed.
  • Does deleting trashed articles affect my live site? No. Articles already in Trash are not published. Permanently deleting them only removes them from Search Atlas.
  • Can I edit schema raw JSON directly? Full raw-JSON editing (including adding and deleting schema blocks) is currently in development and will be available in a future release.
  • Why does the Not Deployed count not match my list? This was a known display bug. It has been resolved in a recent platform update. If you still see a mismatch, refresh the page or trigger a new sync.

💬 Need More Help?

If you need further assistance, open the chat widget in the bottom-right corner of the platform and type human teammate to be connected with a member of our team.