# Open Street Map Example does not work in Agents.jl

**URL:** https://discourse.julialang.org/t/open-street-map-example-does-not-work-in-agents-jl/135295
**Category:** General Usage
**Tags:** agents
**Created:** [January 27, 2026, 7:08pm UTC](https://discourse.julialang.org/t/open-street-map-example-does-not-work-in-agents-jl/135295 "2026-01-27T19:08:32Z")
**Posts on this page:** 16
**Page:** 1

<div class="post-metadata">

### Author: ![Christopher\_Fisher](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/christopher_fisher/32/26132_2.png) [@Christopher\_Fisher](https://discourse.julialang.org/u/Christopher_Fisher)
#### Post date: [January 27, 2026, 7:08pm UTC](https://discourse.julialang.org/t/open-street-map-example-does-not-work-in-agents-jl/135295/1 "2026-01-27T19:08:32Z")

</div>

Hello, I am having difficulty running the [Open Street Map](https://juliadynamics.github.io/Agents.jl/v6.2/examples/zombies/) for Agents.jl. In particular, CairoMakie does not compile, leading to the error below. I received the same error on Windows. The error also persists after downgrading CairoMakie to 0.11.x.

The newer versions of CairoMakie and OSMMakie could be tried on Agents.jl main, but it does not seem to be passing tests.

Any advice would be greatly appreciated.

**Error**

```julia-auto
ERROR: The following 1 direct dependency failed to precompile:

CairoMakie 

Failed to precompile CairoMakie [13f3f980-e62b-5c42-98c6-ff1f3baf88f0] to "/home/itsdfish/.julia/compiled/v1.12/CairoMakie/jl_s6OAaT".
ERROR: LoadError: FieldError: type Core.TypeName has no field `mt`, available fields: `name`, `module`, `singletonname`, `names`, `atomicfields`, `constfields`, `wrapper`, `Typeofwrapper`, `cache`, `linearcache`, `partial`, `hash`, `max_args`, `n_uninitialized`, `flags`, `cache_entry_count`, `max_methods`, `constprop_heuristic`
Stacktrace:
  [1] getproperty(x::Core.TypeName, f::Symbol)
    @ Base ./Base_compiler.jl:54
  [2] func2string(func::typeof(MakieCore.linesegments))
    @ MakieCore ~/.julia/packages/MakieCore/EU17Y/src/recipes.jl:9
  [3] plotkey(::Type{MakieCore.LineSegments{Tuple{Vector{GeometryBasics.Point{2, Float32}}}}})
    @ MakieCore ~/.julia/packages/MakieCore/EU17Y/src/recipes.jl:40
  [4] plotkey(::MakieCore.LineSegments{Tuple{Vector{GeometryBasics.Point{2, Float32}}}})
    @ MakieCore ~/.julia/packages/MakieCore/EU17Y/src/recipes.jl:41
  [5] get_attribute(dict::MakieCore.LineSegments{Tuple{Vector{GeometryBasics.Point{2, Float32}}}}, key::Symbol, default::Nothing)
    @ MakieCore ~/.julia/packages/MakieCore/EU17Y/src/attributes.jl:237
  [6] get_attribute(dict::MakieCore.LineSegments{Tuple{Vector{GeometryBasics.Point{2, Float32}}}}, key::Symbol)
    @ MakieCore ~/.julia/packages/MakieCore/EU17Y/src/attributes.jl:234
  [7] draw_atomic(scene::Makie.Scene, screen::CairoMakie.Screen{CairoMakie.IMAGE}, primitive::Union{MakieCore.Lines, MakieCore.LineSegments})
    @ CairoMakie ~/.julia/packages/CairoMakie/JchUZ/src/primitives.jl:6
  [8] draw_plot(scene::Makie.Scene, screen::CairoMakie.Screen{CairoMakie.IMAGE}, primitive::MakieCore.LineSegments{Tuple{Vector{GeometryBasics.Point{2, Float32}}}})
    @ CairoMakie ~/.julia/packages/CairoMakie/JchUZ/src/infrastructure.jl:135
  [9] cairo_draw(screen::CairoMakie.Screen{CairoMakie.IMAGE}, scene::Makie.Scene)
    @ CairoMakie ~/.julia/packages/CairoMakie/JchUZ/src/infrastructure.jl:49
 [10] colorbuffer(screen::CairoMakie.Screen{CairoMakie.IMAGE})
    @ CairoMakie ~/.julia/packages/CairoMakie/JchUZ/src/screen.jl:375
 [11] colorbuffer(screen::CairoMakie.Screen{CairoMakie.IMAGE}, format::Makie.ImageStorageFormat)
    @ Makie ~/.julia/packages/Makie/Y3ABD/src/display.jl:391
 [12] colorbuffer(fig::Makie.FigureAxisPlot, format::Makie.ImageStorageFormat; update::Bool, backend::Module, screen_config::@Kwargs{})
    @ Makie ~/.julia/packages/Makie/Y3ABD/src/display.jl:475
 [13] colorbuffer
    @ ~/.julia/packages/Makie/Y3ABD/src/display.jl:466 [inlined]
 [14] colorbuffer(fig::Makie.FigureAxisPlot)
    @ Makie ~/.julia/packages/Makie/Y3ABD/src/display.jl:466
 [15] top-level scope
    @ ~/.julia/packages/Makie/Y3ABD/precompile/shared-precompile.jl:6
 [16] include(mapexpr::Function, mod::Module, _path::String)
    @ Base ./Base.jl:307
 [17] top-level scope
    @ ~/.julia/packages/CairoMakie/JchUZ/src/precompiles.jl:11
 [18] macro expansion
    @ ~/.julia/packages/PrecompileTools/gn08A/src/workloads.jl:73 [inlined]
 [19] macro expansion
    @ ~/.julia/packages/CairoMakie/JchUZ/src/precompiles.jl:15 [inlined]
 [20] include(mapexpr::Function, mod::Module, _path::String)
    @ Base ./Base.jl:307
 [21] top-level scope
    @ ~/.julia/packages/CairoMakie/JchUZ/src/CairoMakie.jl:37
 [22] include(mod::Module, _path::String)
    @ Base ./Base.jl:306
 [23] include_package_for_output(pkg::Base.PkgId, input::String, depot_path::Vector{String}, dl_load_path::Vector{String}, load_path::Vector{String}, concrete_deps::Vector{Pair{Base.PkgId, UInt128}}, source::Nothing)
    @ Base ./loading.jl:3024
 [24] top-level scope
    @ stdin:5
 [25] eval(m::Module, e::Any)
    @ Core ./boot.jl:489
 [26] include_string(mapexpr::typeof(identity), mod::Module, code::String, filename::String)
    @ Base ./loading.jl:2870
 [27] include_string
    @ ./loading.jl:2880 [inlined]
 [28] exec_options(opts::Base.JLOptions)
    @ Base ./client.jl:315
 [29] _start()
    @ Base ./client.jl:550
in expression starting at /home/itsdfish/.julia/packages/Makie/Y3ABD/precompile/shared-precompile.jl:4
in expression starting at /home/itsdfish/.julia/packages/CairoMakie/JchUZ/src/precompiles.jl:10
in expression starting at /home/itsdfish/.julia/packages/CairoMakie/JchUZ/src/CairoMakie.jl:1
in expression starting at stdin:

```

**Version Info**

```julia-auto
(zombie_outbreak) pkg> st
Status `~/.julia/dev/sandbox/zombie_outbreak/Project.toml`
  [46ada45e] Agents v6.2.10
⌃ [13f3f980] CairoMakie v0.12.18
⌃ [76b6901f] OSMMakie v0.0.10
  [9a3f8284] Random v1.11.0
Info Packages marked with ⌃ have new versions available and may be upgradable.

```

```julia-auto
Julia Version 1.12.4
Commit 01a2eadb047 (2026-01-06 16:56 UTC)
Build Info:
  Official https://julialang.org release
Platform Info:
  OS: Linux (x86_64-linux-gnu)
  CPU: 16 × AMD Ryzen 7 7700X 8-Core Processor
  WORD_SIZE: 64
  LLVM: libLLVM-18.1.7 (ORCJIT, znver4)
  GC: Built with stock GC
Threads: 8 default, 1 interactive, 8 GC (on 16 virtual cores)
Environment:
  JULIA_EDITOR = code
  JULIA_VSCODE_REPL = 1
  JULIA_NUM_THREADS = 8

```

---

<div class="post-metadata">

### Author: ![asinghvi17](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/asinghvi17/32/8272_2.png) [@asinghvi17](https://discourse.julialang.org/u/asinghvi17)
#### Post date: [January 27, 2026, 7:53pm UTC](https://discourse.julialang.org/t/open-street-map-example-does-not-work-in-agents-jl/135295/2 "2026-01-27T19:53:46Z")

</div>

Your julia version is too new for that version of Makie. Try going down to 1.10

---

<div class="post-metadata">

### Author: ![Christopher\_Fisher](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/christopher_fisher/32/26132_2.png) [@Christopher\_Fisher](https://discourse.julialang.org/u/Christopher_Fisher)
#### Post date: [January 27, 2026, 9:14pm UTC](https://discourse.julialang.org/t/open-street-map-example-does-not-work-in-agents-jl/135295/3 "2026-01-27T21:14:02Z")

</div>

Thank you!

I see that you are a developer for Makie. Do you happen to know the timeline for supporting newer versions of Julia?

---

<div class="post-metadata">

### Author: ![asinghvi17](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/asinghvi17/32/8272_2.png) [@asinghvi17](https://discourse.julialang.org/u/asinghvi17)
#### Post date: [January 27, 2026, 9:35pm UTC](https://discourse.julialang.org/t/open-street-map-example-does-not-work-in-agents-jl/135295/4 "2026-01-27T21:35:24Z")

</div>

The issue is that you are on an old version of Makie…this is probably because of OSMMakie.jl which is quite outdated. I’l take a look but there is probably not a firm timeline…

---

<div class="post-metadata">

### Author: ![Christopher\_Fisher](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/christopher_fisher/32/26132_2.png) [@Christopher\_Fisher](https://discourse.julialang.org/u/Christopher_Fisher)
#### Post date: [January 27, 2026, 11:16pm UTC](https://discourse.julialang.org/t/open-street-map-example-does-not-work-in-agents-jl/135295/5 "2026-01-27T23:16:02Z")

</div>

Thanks for looking into the timeline.

---

<div class="post-metadata">

### Author: ![lazarusA](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/lazarusa/32/6571_2.png) [@lazarusA](https://discourse.julialang.org/u/lazarusA)
#### Post date: [January 28, 2026, 7:36am UTC](https://discourse.julialang.org/t/open-street-map-example-does-not-work-in-agents-jl/135295/6 "2026-01-28T07:36:36Z")

</div>

> [@asinghvi17](#):
>
> [OSMMakie.jl](https://juliaregistries.github.io/General/packages/redirect_to_repo/OSMMakie)

mmm… last update does support latest Makie, 0.24. I don’t think this is in the makie side.

---

<div class="post-metadata">

### Author: ![Christopher\_Fisher](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/christopher_fisher/32/26132_2.png) [@Christopher\_Fisher](https://discourse.julialang.org/u/Christopher_Fisher)
#### Post date: [January 28, 2026, 8:45am UTC](https://discourse.julialang.org/t/open-street-map-example-does-not-work-in-agents-jl/135295/7 "2026-01-28T08:45:04Z")

</div>

If I understand correctly, the latest version of [Makie](https://github.com/MakieOrg/Makie.jl/blob/f9b432dd4409e51962a4d331a74db6f3faab06b4/Makie/Project.toml#L135) is restricted to Julia 1.10 (although it was not enforced).

---

<div class="post-metadata">

### Author: ![nilshg](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/nilshg/32/2283_2.png) [@nilshg](https://discourse.julialang.org/u/nilshg)
#### Post date: [January 28, 2026, 9:14am UTC](https://discourse.julialang.org/t/open-street-map-example-does-not-work-in-agents-jl/135295/8 "2026-01-28T09:14:48Z")

</div>

That’s a common misinterpretation of what `=` means in the compat section - it enforces SemVer and declares compatibility with the given version _and any minor/patch updates_. See:

> **[Version specifier format - 7. Compatibility · Pkg.jl](https://pkgdocs.julialang.org/v1/compatibility/#Version-specifier-format)**
>
> Compatibility refers to the ability to restrict the versions of the dependencies that your project is compatible with. If the compatibility for a dependency is not given, the project is assumed to be compatible with all versions of that dependency. |...

So `julia = 1.10` means any Julia from 1.10 to 1.10+x, up to but excluding Julia 2.0.

---

<div class="post-metadata">

### Author: ![Sevi](https://avatars.discourse-cdn.com/v4/letter/s/c67d28/32.png) [@Sevi](https://discourse.julialang.org/u/Sevi)
#### Post date: [January 28, 2026, 10:15am UTC](https://discourse.julialang.org/t/open-street-map-example-does-not-work-in-agents-jl/135295/9 "2026-01-28T10:15:01Z")

</div>

Don’t want to derail this topic, but since this is can be a bit confusing, I just want to add two more things to @nilshg’s post for clarification:

- There is also the format `julia = "=1.10.10"` (so the `=` can be used right in front of the version number to restrict a package to only match the given version, so it has two meanings). To say "only Julia 1.10 up to the patch version, use `julia = "~1.10"`.
- The version of `julia` itself is not enforced to the given version number (you’re already running Julia anyway when Pkg is running), it just prints a warning if you run the package code with a incompatible version  
`[ Warning: julia version requirement for project not satisfied`

But I think `Pkg` does try to install only compatible packages when the julia version compat is specified (?)

---

<div class="post-metadata">

### Author: ![nilshg](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/nilshg/32/2283_2.png) [@nilshg](https://discourse.julialang.org/u/nilshg)
#### Post date: [January 28, 2026, 10:41am UTC](https://discourse.julialang.org/t/open-street-map-example-does-not-work-in-agents-jl/135295/10 "2026-01-28T10:41:17Z")

</div>

```julia-auto
~> julia +1.9 -q --startup-file=no
                                                                                                                                                           01/28/2026 10:38:24 AM
(@v1.9) pkg> add Makie@0.24.8
   Resolving package versions...
ERROR: Unsatisfiable requirements detected for package Makie [ee78f7c6]:
 Makie [ee78f7c6] log:
 ├─possible versions are: 0.9.0-0.24.8 or uninstalled
 ├─restricted to versions 0.24.8 by an explicit requirement, leaving only versions: 0.24.8
 └─restricted by julia compatibility requirements to versions: 0.9.0-0.23.0 or uninstalled — no versions left

```

---

<div class="post-metadata">

### Author: ![asinghvi17](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/asinghvi17/32/8272_2.png) [@asinghvi17](https://discourse.julialang.org/u/asinghvi17)
#### Post date: [January 28, 2026, 1:09pm UTC](https://discourse.julialang.org/t/open-street-map-example-does-not-work-in-agents-jl/135295/11 "2026-01-28T13:09:48Z")

</div>

No, Makie 0.24 is compatible with latest julia. IIUC the original post was an issue for Makie 0.23 and below. Perhaps Agents.jl is holding Makie back then? But it will be something in that env. Try `]st -m --outdated Makie` maybe?

---

<div class="post-metadata">

### Author: ![Christopher\_Fisher](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/christopher_fisher/32/26132_2.png) [@Christopher\_Fisher](https://discourse.julialang.org/u/Christopher_Fisher)
#### Post date: [January 28, 2026, 11:29pm UTC](https://discourse.julialang.org/t/open-street-map-example-does-not-work-in-agents-jl/135295/12 "2026-01-28T23:29:32Z")

</div>

You are correct. The [latest release](https://github.com/JuliaDynamics/Agents.jl/blob/346690f2959392f32f37a88fbd06eccf6098414b/Project.toml#L59) of Agents.jl is restricted to an older version of Makie, but this restriction has been relaxed on [main](https://github.com/JuliaDynamics/Agents.jl/blob/2dcc3da6ddce54d8d3b28dd951576f49cdcef3e9/Project.toml#L61).

---

<div class="post-metadata">

### Author: ![Datseris](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/datseris/32/13406_2.png) [@Datseris](https://discourse.julialang.org/u/Datseris)
#### Post date: [January 28, 2026, 11:38pm UTC](https://discourse.julialang.org/t/open-street-map-example-does-not-work-in-agents-jl/135295/13 "2026-01-28T23:38:22Z")

</div>

New release coming soon!

---

<div class="post-metadata">

### Author: ![Christopher\_Fisher](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/christopher_fisher/32/26132_2.png) [@Christopher\_Fisher](https://discourse.julialang.org/u/Christopher_Fisher)
#### Post date: [February 11, 2026, 2:08pm UTC](https://discourse.julialang.org/t/open-street-map-example-does-not-work-in-agents-jl/135295/14 "2026-02-11T14:08:46Z")

</div>

Do you have an approximate release date?

---

<div class="post-metadata">

### Author: ![Datseris](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/datseris/32/13406_2.png) [@Datseris](https://discourse.julialang.org/u/Datseris)
#### Post date: [February 11, 2026, 2:14pm UTC](https://discourse.julialang.org/t/open-street-map-example-does-not-work-in-agents-jl/135295/15 "2026-02-11T14:14:42Z")

</div>

two to four weeks!

---

<div class="post-metadata">

### Author: ![Magnus\_Lilledahl](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/magnus_lilledahl/32/51079_2.png) [@Magnus\_Lilledahl](https://discourse.julialang.org/u/Magnus_Lilledahl)
#### Post date: [February 20, 2026, 11:26am UTC](https://discourse.julialang.org/t/open-street-map-example-does-not-work-in-agents-jl/135295/16 "2026-02-20T11:26:49Z")

</div>

If of interest while we are waiting for packages to update, the following created a working environment that would run the [zombie example](https://juliadynamics.github.io/Agents.jl/stable/examples/zombies/) using OSM.

Install Julia 1.11.5 (sort of arbitrary, but I read somewhere that there were some issues between 1.12 and Makie so chose a version somewhat below…)

```julia-auto
juliaup add 1.11.5

```

started this version of julia in a fresh environment

```julia-auto
> julia +1.11.5
julia>]
pkg>activate .

```

Then I installed CairoMakie, OSMMakie and Agents in this order

```julia-auto
pkg>add CairoMakie
pkg>add OSMMakie
pkg>add Agents

```

This resulted in Agents at version 5.17.1, so ran pkg.update()

```julia-auto
pkg>update

```

This resulted in

- `Agents` v.6.2.10
- `CairoMakie v0.12.18`
- `OSMMakie v.0.0.10`

Using this environment the zombie example ran without any errors.
