Invalid version list in discourse themes

I found these when upgraded. Well, those has been a while now, but this time I took a log.

[db:default] 'Messages section for sidebar' -  checking...
Invalid version list in /tmp/discourse_theme_c64ff70a4cc7d614d9e88b106805c78f

[db:default] 'Unhide composer fullscreen toggle for tablets' -  checking...
Invalid version list in /tmp/discourse_theme_4f18f6036fb93a7e2c8eca368c66ad09


[db:default] 'Discourse Highlight to Search' -  checking...
Invalid version list in /tmp/discourse_theme_f7e393183be5f0189adb336c4602f071

[db:default] 'Discourse Wikipedia Lookup' -  checking...
Invalid version list in /tmp/discourse_theme_8cf76b5d4fe5eac70cd636ee2487be35

[db:default] 'Accent' -  checking...
Invalid version list in /tmp/discourse_theme_9796e5491667b1c43c7b9c680fc68ff3

Should I be worried?

Not really, but maybe yes.

There are many reasons why you would get that error. The most common reason is probably that the .discourse-compatibility is empty [1], [2], [3]. (The leading # are comment lines)

Effectively the warning means that Discourse is unable to determine if the current “latest” version of the component/plugin is compatible with the current discourse version. Or if it needs to checkout an older version of the component/plugin.

The .discourse-compatibility file of the component/plugin can contain a mapping of a discourse version range to a specific revision of the component/plugin. If discourse finds a mapping, it will use that revision instead of the latest one. This does require that the developer updates the file once they make changes which break with a previous Discourse version. As long as you did not make breaking changes, then the file would remain empty, and thus produce that warning message.

If the component/plugin works with the latest version of Discourse is always a guess.

I started developing a plugin for 2026.1, so that would be the minimum version of Discourse. It is still developed and tested against that version (and tested against the current latest). Because there is no older supported Discourse version, the .discourse-compatibility is empty; and thus produces this warning message. Once 2026.1 will run out of support, I am going to move to the new ESR. At that point I am not longer going to test against 2026.1, and thus I would update the .discourse-compatibilityfile making it finally non-empty. Only then this warning will disappear for my plugin.

More info about this .discourse-compatibility file: Introducing .discourse-compatibility: pinned plugin/theme versions for older Discourse versions

I tried that. I forked the Discourse Wikipedia Lookup component and added the .discourse-compatibility file to it. I copied the content from another component. The warning disappeared. So that was indeed the issue.

Thanks.

But I looked at a few other TCs, and they either lacked .discourse-compatibility entirely or had a completely empty one. Yet they didn’t produce any warnings.

Anyway, the matter is resolved, and life goes on.

Copying the content from the compatibility file of another component can result in errors because the commit referenced for a specific Discourse version doesn’t exist in the repository you copied it to.

I know the workflow for the compatibility branches failed on my repos because I still haven’t added the fix Arkshine added to the theme skeleton. I think both of my repos on your list are currently affected by that.

This will stop the warnings being logged for files which only contain comments:

.discourse-compatibility is still supported, although our recommendation is now to follow the d-compat/* branch-based strategy for theme/plugin compatibility. More details here:

So, if your file doesn’t have any real entries, I’d recommend deleting it.

Sure. I don’t have any plans to actually use that fork. It was only a test to be sure that the reason was use of the template/boilerplate file. I just wanted to be sure to use actual commits and right syntax.