Still not solved, but I have not spent a ton of time trying to dig into the Erlang dialyzer code. Some more context though.
This is not a single plt file becoming somehow corrupt. Azure Pipelines being Azure Pipelines, caching is isolated to a specific branch. This error was occurring across multiple PR builds. Also the main build, which uses a different cache key, also got the error. Each PLT became old on the 7th of Jan.
As mentioned we’re using dialyxir . Briefly looking at the output it checks that the plt is up to date before running dialyzer with checking disabled .
So the output looks like
Checking PLT...
[(redacted the list of applications), ...]
PLT is up to date!
ignore_warnings: dialyzer.ignore_warnings
Starting Dialyzer
[
check_plt: false,
init_plt: '(redacted)/priv/plts/application.plt',
files: [(redacted the list of files)],
warnings: [:unknown]
]
:dialyzer.run error: Old PLT file (redacted)/priv/plts/application.plt
Also I have checked and at that time:
- there was no change to any dependencies
- no change to the dialyzer config
- no change to Elixir and Erlang versions
Even if there were, I don’t see how it could have affected multiple pipelines given the cache isolation.






















