Fix audio generation errors
Updated September 15, 2026
When generation fails, the post editor or Generator page shows an alert starting “Something went wrong! Error:” or “Error:”, followed by the reason. Most failures come from the OpenAI account, the server’s time limit, or a missing PHP extension. The last 10 errors are also listed in AI Text-to-Speech › Settings › General Settings › Error Log.
“Insufficient quota. Please check your OpenAI account balance.”
Your OpenAI account has no credit left, or has hit its usage limit. Add credit in OpenAI billing or raise your monthly limit, wait a few minutes, then try again. A new account without a payment method will also show this.
“Error generating audio: Incorrect API key provided…”
The key is wrong, has been revoked, or has spaces around it. Create a new secret key at platform.openai.com/api-keys, paste it into OpenAI API Secret Key and save. If the key belongs to a project with restricted permissions, make sure it’s allowed to use the audio/speech endpoint.
OpenAI errors with “(chunk 2 of 4, approx. … tokens, … characters)”
Any other error message from OpenAI is shown with the chunk that failed. Common causes are a voice that isn’t available on your chosen model (try GPT-4o mini TTS or a different voice), a temporary OpenAI outage, or a rate limit (response code 429). Wait and retry, or check status.openai.com.
Long posts fail or the spinner never finishes
All chunks of a post are generated in a single request to your server. A long article can take several minutes, and many hosts stop PHP requests after 30, 60 or 120 seconds, or a proxy such as Cloudflare times out after about 100 seconds. You’ll usually see “An error occurred while generating the TTS.” with no details.
- Ask your host to raise
max_execution_timeand any web server or proxy timeout foradmin-ajax.php. - Use GPT-4o mini TTS, which sends fewer, larger chunks than TTS-1.
- For very long content, PRO users can use Replace Content with a shorter script, or split the article.
It fails only on posts that mention prices
Currency amounts like $10 or £5 are converted to words with PHP’s NumberFormatter class, which comes from the intl extension. If intl isn’t installed, the request crashes with a fatal error and you get a generic error alert. Check Tools › Site Health › Info › Server or your PHP error log for “Class NumberFormatter not found”, and ask your host to enable the intl extension.
It works on the Generator page but not in the post editor
In version 3.2.0 the post editor box sends its requests to /wp-admin/admin-ajax.php at the root of your domain. If WordPress is installed in a subfolder (for example example.com/blog/), that address doesn’t exist and generation from the editor fails. Contact support with your site details if this applies to you.
Other messages
- “Nonce verification failed”: the editor page has been open too long. Save your work, reload the page and try again.
- “You do not have permission to generate…”: your role isn’t allowed in Limits and Permissions, or you can’t edit that post.
- “There was an error creating the upload directory.” / “There was an error saving the file.”: the server can’t write to
/wp-content/uploads/ai-text-to-speech/. Check folder permissions or free disk space. - “Dropbox storage error: …”: the upload to Dropbox failed. Reconnect Dropbox, check the app permissions, or switch File Storage Location to Local.
- “No content provided.”: the post content is empty. Save the post before generating.


