AI translation backfill not working after all settings configured

I’m trying to enable automatic content localization (AI translation backfill) on my self-hosted Discourse instance and I’ve followed all the available guidelines, but I’m not seeing any translations appear.

Here’s what I’ve done so far:

  • Enabled content localization enabled
  • Selected at least one language in content localization supported locales
  • Enabled ai translation enabled
  • Chosen a working ai translation model (test is successful)
  • Set ai_translation_backfill_hourly_rate to a number greater than 0 (using the environment variable method in app.yml)
  • Set ai translation max age days to a large value

After saving and rebuilding, I posted topics in a different language than my user language preference, but nothing gets translated. I don’t see any evidence of translation jobs running (tried checking Sidekiq scheduled/queues), and the user-facing content remains untranslated.

Is there anything else I should check, or any way to better diagnose why the translation backfill is not triggering?

2 Likes

What is your ai_translation_backfill_hourly_rate – can you try 20 to begin with? It would help if you could share all the values.

Are all your posts public and not in restricted categories? If ai_translation_backfill_limit_to_public_content is disabled, you won’t have any posts translated.

SiteSetting.ai_translation_verbose_logs=true will show some details when it’s successful.

Alternatively if you have data explorer, you can try the following to see

  • if there are any LLM calls to translate
  • or if post locales are getting detected but the posts are not translated
SELECT COUNT(*)
FROM ai_api_audit_logs
WHERE feature_name = 'translation'
SELECT COUNT(*)
FROM posts
WHERE (locale IS NOT NULL AND locale <> '')
1 Like

Thank you for your reply!

  • My DISCOURSE_AI_TRANSLATION_BACKFILL_HOURLY_RATE is set to 30.
  • ai_translation_backfill_limit_to_public_content is enabled.
  • All of my posts are public and not in any restricted categories.

Were these the jobs you were looking for?


Please also do check the queries mentioned above.

Thank you for your suggestion!

Yes, I can see these jobs in Sidekiq under /sidekiq/scheduler:

  • Jobs::PostLocalizationBackfill
  • Jobs::TopicLocalizationBackfill
  • Jobs::TopicsLocaleDetectionBackfill

They all appear with status “OK” and have recently run.

I also noticed that the topic titles are being translated correctly, but the post content itself is not translated yet.
Should I simply wait longer for the content to be processed, or is there another setting that I need to check for post content translation?

I have the a similar problem after making all the same changes in my hosted instance. In this case I’m using openai 4o. It seems to translate only the past 3 or 4 posts and nothing further. I still have plenty of credit available on my api key.

What is your ai translation max age days at ?
After adjusting that, it can take a while to take effect.

  1. Its been around 24h

Hello,

I think I’m running into the same issue. I’ve followed all the steps in the guide (https://meta.discourse.org/t/content-localization-manual-and-automatic-with-discourse-ai/370969), including setting AI_translation_backfill_hourly_rate = 50.

I’ve tested with all available OpenAI models (tests were successful), and I also ran a rebake.

Unfortunately, the AI plugin still refuses to perform automatic translations.

Has anyone an idea what could be wrong?

I’d be very grateful for any help, as I’m really looking forward to this feature.

Version: 3.6.0.beta1-dev

Regards

Graham

Where I’m at currently. I ran the test with the API key it’s fine. Like I said, translated like 3-4 pots then no others, also new posts are being added and no translations on those.

@joo : me and @tyronejv are using OpenAI. Is that also the case for you?
Maybe the issue is related to their API connection.

@tyronejv I’m using very similar settings like you. The API key test works fine, but translations still don’t run.

  • anything in /logs ?

  • try to go to /sidekiq/scheduler and manually trigger all jobs that contain “LocalizationBackfill” and “LocaleDetectionBackfill”

Solved!

  1. Do not use GPT-5 unless you have not verified your organisation in OpenAi-Organization settings
  2. insert your organisation Id (https://platform.openai.com/settings/organization/general) in discourse ai settings
  3. disable temperature settings in discourse ai llm settings
1 Like

At the moment GPT-5 is so slow that its use shound be targeted to different type things. But sure, that is matter of taste and it depends.

But I’m using Chat GPT/GPT-5 in Finnish every now and then. Earlier 4x-series where actually quite good with a small and hard language such Finnish. Now… I would never use it for translations. Perhaps GPT-5 and next generations evolve and do better job in the future and perhaps it is already spotless between major languages.

But sure, that was totally off topic, but perhaps it can be allowed this one time. You did find needed solution after all. But my vague point is this topic should never born, because , at the moment and by my experiences, no one should never use GPT-5 for translations in the first place.

Thanks for the screenshots.

As mentioned by @GrahamM ai_translation_backfill_hourly_rate needs to be set by your site admin as it is a hidden setting.


Other than what’s mentioned in the FAQ, could you folks check -

  • Check the graph at https://your-site.com/admin/plugins/discourse-ai/ai-translations. How many eligible posts are there? If it doesn’t show up, you’ll need to update
    • e.g.

SELECT 
  a.id,
  a.created_at,
  a.raw_request_payload,
  a.raw_response_payload,
  a.post_id
FROM ai_api_audit_logs a
WHERE a.created_at > '2025-09-01'
AND a.feature_name = 'translation'
ORDER BY a.created_at DESC
LIMIT 100

I’ve made sure that AI translation is enabled, backfills days (10 per hour) and limits (10000 days) are all set. I’ve added Spanish translations but it still says that backfill is disabled and I don’t see any jobs in sidekiq. Do I need to rebuild? I didn’t a rebuild 3 days ago. Most posts are public to read.




What am I missing?

We’ve most recently unhidden the setting ai_translation_backfill_hourly_rate in this PR.

That setting defaults to 0, and was originally hidden so that only hosters (who know what they’re doing) can set that value. You’ll need to update that to a value like 100.

1 Like

Yes I saw that and changed it from 0 to 10 (see the screenshots above) and it’s still saying that backfill is disabled with no scheduled jobs. Is there some way to kick start it or is something else required?

I’ve tried a 100 also but still no joy.

What posts are you trying to translate? Bot posts (users with ids <= 0) are not sent for translations.

Are your posts in private categories?

The whole site in general, want to use users options to see posts in different languages. Not bot or private, 1000’s of public posts.

Now this is very weird, when I see the dashboard now (19 hours later), I see this. It’s saying backfill is disabled but seems to have started doing some posts but it’s saying only 11 posts; is that how many are done or is that the total number it’s targeting or are those new posts?

One again, I don’t see any backfill jobs in scheduled jobs