# Precompilation error with Catalyst (Circular dependency)

**URL:** https://discourse.julialang.org/t/precompilation-error-with-catalyst-circular-dependency/136013
**Category:** General Usage
**Tags:** question, sciml, modelingtoolkit, catalyst
**Created:** [March 4, 2026, 2:49pm UTC](https://discourse.julialang.org/t/precompilation-error-with-catalyst-circular-dependency/136013 "2026-03-04T14:49:44Z")
**Posts on this page:** 4
**Page:** 1

<div class="post-metadata">

### Author: ![Luca\_Maria\_Moccia](https://avatars.discourse-cdn.com/v4/letter/l/91b2a8/32.png) [@Luca\_Maria\_Moccia](https://discourse.julialang.org/u/Luca_Maria_Moccia)
#### Post date: [March 4, 2026, 2:49pm UTC](https://discourse.julialang.org/t/precompilation-error-with-catalyst-circular-dependency/136013/1 "2026-03-04T14:49:44Z")

</div>

Hello everyone,

I am currently working on a biology modeling project for my Master’s internship, using an environment provided by my lab.  
When trying to load our local package (which depends heavily on the SciML ecosystem, specifically `ModelingToolkit`), the precompilation completely fails due to a circular dependency warning followed by a ` __precompile__ (false)` error.

For reference, the source code of our local package can be found here: [SynapseElife GitHub repository](https://github.com/rveltz/SynapseElife.jl).

Here is the minimal working example I run:

```julia
cd(@ __DIR__ )
using Pkg
pkg"activate ."

using SynapseElife

```

And here is the error log I get :

```julia-auto
┌ Warning: Circular dependency detected.
│ Precompilation will be skipped for dependencies in this cycle:
│ ┌ Symbolics → SymbolicsPreallocationToolsExt
│ └─ Symbolics → SymbolicsForwardDiffExt
│ Precompilation will also be skipped for the following, which depend on the above cycle:
│ ModelingToolkit
│ SynapseElife
│ ModelingToolkit → MTKLabelledArraysExt
│ Catalyst
└ @ Pkg.API.Precompilation ~/.julia/juliaup/julia-1.10.10+0.aarch64.apple.darwin14/share/julia/stdlib/v1.10/Pkg/src/precompilation.jl:583
[Info: Precompiling SynapseElife [7cc9ea39-daa9-4846-be95-d8a08c9e3c85]
┌ Warning: Module SymbolicsPreallocationToolsExt with build ID ffffffff-ffff-ffff-51ce-44c5a6a88d92 is missing from the cache.
│ This may mean SymbolicsPreallocationToolsExt [d479e226-fb54-5ebe-a75e-a7af7f39127f] does not support precompilation but is imported by a module that does.
└ @ Base loading.jl:2018
┌ Error: Error during loading of extension SymbolicsPreallocationToolsExt of Symbolics, use `Base.retry_load_extensions()` to retry.
│ exception =
│ 1-element ExceptionStack:
│ Declaring __precompile__ (false) is not allowed in files that are being precompiled.
│ Stacktrace:
│ [1] _require(pkg::Base.PkgId, env::Nothing)
│ @ Base ./loading.jl:2022
# ... (Truncated stacktrace for readability, pointing to loading.jl)

```

Environment details:  
OS: macOS (Apple Silicon / aarch64)  
Julia version: `1.10.10`

Relevant package versions:  
Symbolics.jl: `v6.58.0`  
ModelingToolkit.jl: `v9.84.0`  
PreallocationTools.jl: `v0.4.34`

We are trying to avoid a blind `] update` because the biological model was validated on these specific versions.  
Is there a known workaround to fix this cache/precompilation issue without breaking the environment?

Thanks in advance for your help !

---

<div class="post-metadata">

### Author: ![isaacsas](https://avatars.discourse-cdn.com/v4/letter/i/f6c823/32.png) [@isaacsas](https://discourse.julialang.org/u/isaacsas)
#### Post date: [March 4, 2026, 4:20pm UTC](https://discourse.julialang.org/t/precompilation-error-with-catalyst-circular-dependency/136013/2 "2026-03-04T16:20:04Z")

</div>

This doesn’t really look like a Catalyst issue, but something at the level of Symbolics.jl. If you want to use the exact versions you had previously you also need the Manifest.toml file from when you last ran the code. Otherwise you aren’t guaranteed to reproduce the exact environment.

---

<div class="post-metadata">

### Author: ![isaacsas](https://avatars.discourse-cdn.com/v4/letter/i/f6c823/32.png) [@isaacsas](https://discourse.julialang.org/u/isaacsas)
#### Post date: [March 4, 2026, 4:21pm UTC](https://discourse.julialang.org/t/precompilation-error-with-catalyst-circular-dependency/136013/3 "2026-03-04T16:21:49Z")

</div>

You might look at this issue:

> <https://github.com/JuliaSymbolics/Symbolics.jl/issues/1796>
>
> This is identical to #1632
> \`\`\`
> ┌ Warning: Circular dependency detected.
> │ Precom…pilation will be skipped for dependencies in this cycle:
> │ ┌ Symbolics → SymbolicsPreallocationToolsExt
> │ └─ Symbolics → SymbolicsForwardDiffExt
> \`\`\` 
> But i am seeing it in Symbolic v6.58.0, on julia 1.10.10
> 
> 
> but release notes say it was fixed in https://github.com/JuliaSymbolics/Symbolics.jl/releases/tag/v6.54.0
> 
> 
> Doesn't happen in 1.11

Seems like this is a Julia 1.10 bug.

---

<div class="post-metadata">

### Author: ![isaacsas](https://avatars.discourse-cdn.com/v4/letter/i/f6c823/32.png) [@isaacsas](https://discourse.julialang.org/u/isaacsas)
#### Post date: [March 4, 2026, 4:23pm UTC](https://discourse.julialang.org/t/precompilation-error-with-catalyst-circular-dependency/136013/4 "2026-03-04T16:23:37Z")

</div>

And I think this should be fixed in the next 1.10 release, so you could try running with the release branch:

> [@Julia v1.10.11 testing period](https://discourse.julialang.org/t/julia-v1-10-11-testing-period/135861):
>
> The release-1.10 branch on the Julia repository now contains the set of commits we’re planning to tag as v1.10.11. The list of commits included since v1.10.0 is available [here](https://github.com/JuliaLang/julia/compare/v1.10.10...release-1.10). As a patch release, it should be non-breaking for existing code and introduce no new features, just bug fixes and performance enhancements. There is a small change in how extensions are loaded to keep the behavior in line with newer julia versions. This was deemed an acceptable change since the previous behavior effective…
