Troubleshoot machine translation

Start with the message shown beside the POM AI action or in the Generate pending translations activity log. Then match the symptom to the checks below.

Symptom Likely cause Check
POM AI action is absent LLM translation is disabled or no target locale exists Settings → POM Translate → Advanced and the additional-language list
A valid POM AI license is required No readable POM AI key exists for this site Settings → POM AI → License
Domain is not configured or authorized The current host is absent from the POM AI license The Domain line and account authorized-domain list
Not enough AI credits Account balance or this domain's allowance is exhausted Settings → POM AI → License and My Account → POM AI Management
Daily translation limit reached Local word or string counter has no room for the next batch Machine Translation Status and LLM translation settings
Translation is temporarily paused Qualifying failures reached the error threshold License, connectivity, latest error, and backoff time
Service could not be reached Outbound HTTPS, DNS, firewall, or temporary account-service problem Retry one small item after connectivity is restored
AI reply was unusable Empty, incomplete, malformed, or missing output Retry one representative string; review persistent cases manually
Protected formatting markers changed Required placeholders were removed, duplicated, or altered Leave the row pending and correct it manually
Source changed during the request An editor saved the source before the reply arrived Run translation again against the current source
String exceeds the limit One extracted value exceeds 400 payload words, including protected formatting and application markers Find the source from the batch details, then split the source content or translate the value manually
Queue does not move Background translation is disabled or WordPress cron is not running Background setting, cron runner, then Process now

Use the correct status view

Open Translations → Generate pending translations to inspect queue size, word usage, string usage, and paused state.

Then open Translations → Translate contents, select the target language, and filter:

  • Pending for unresolved or rejected values;
  • Machine for successful POM AI results awaiting editorial review.

The generator completing its object scan does not prove every string translated. The final pending filter is the authoritative review list for database-backed content.

Identify an affected batch

Failed stored-string batches include Batch details in the activity log: the target locale, string IDs, source object types and IDs, source fields, and payload word and string counts alongside their per-request limits. These details are available without enabling WordPress debug logging. They contain identifiers and counts, not the source text or translation prompt.

For example, a source shown as post:567:post_content belongs to the content of post or page 567. Open Translations → Translate contents, select the reported language, set Filter by status to Pending, set Filter by object type to Post, enter 567 in Object ID, and select Filter. A meta source belongs to a custom field of that same post. Registered values are managed under Other translations.

When only part of a batch remains unresolved, the details identify those remaining rows. A job paused after repeated translation failures also lists its pending string IDs and locale. Correct the reported cause before resuming the same processing mode.

Payload words are counted after formatting and application markers have been protected for the translation request. This count can exceed the number of visible words in the editor. Multi-string requests are split automatically when their final payload exceeds a local request limit; an individual string that still exceeds the limit requires manual attention.

Retry safely

  1. Correct the deterministic cause first.
  2. Retry one short value.
  3. Confirm the target locale and stored status.
  4. Confirm the local counters and POM AI balance behave as expected.
  5. Resume a larger run only after the sample succeeds.

Do not reset local quota counters to solve a missing license, domain, credit, network, or formatting problem. The reset changes none of those conditions.

If a value cannot be translated automatically, enter it manually. Leaving the field empty is also safe: public rendering falls back to the source text.