# Integrals.jl & Zygote not working on 1.12

**URL:** https://discourse.julialang.org/t/integrals-jl-zygote-not-working-on-1-12/133214
**Category:** General Usage
**Tags:** zygote, sciml, autodiff
**Created:** [October 16, 2025, 6:38pm UTC](https://discourse.julialang.org/t/integrals-jl-zygote-not-working-on-1-12/133214 "2025-10-16T18:38:40Z")
**Posts on this page:** 2
**Page:** 1

<div class="post-metadata">

### Author: ![marcobonici](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/marcobonici/32/20549_2.png) [@marcobonici](https://discourse.julialang.org/u/marcobonici)
#### Post date: [October 16, 2025, 6:38pm UTC](https://discourse.julialang.org/t/integrals-jl-zygote-not-working-on-1-12/133214/1 "2025-10-16T18:38:40Z")

</div>

Hello,  
I have been trying to differentiate an IntegralProblem, as defined using `Integrals.jl`, using `Zygote.jl`.

While on 1.10 and 1.11 it works nicely, I have issues with 1.12.

Here a MWE to reproduce the error

> **Summary**
>
> Actually, this is taken from `Integrals.jl` documentation
> 
> ```julia-auto
> using Integrals, ForwardDiff, FiniteDiff, Zygote, Cuba
> f(x, p) = sum(sin.(x .* p))
> domain = (ones(2), 3ones(2)) # (lb, ub)
> p = ones(2)
> 
> function testf(p)
> prob = IntegralProblem(f, domain, p)
> sin(solve(prob, CubaCuhre(), reltol = 1e-6, abstol = 1e-6)[1])
> end
> testf(p)
> dp1 = Zygote.gradient(testf, p)
> dp2 = FiniteDiff.finite_difference_gradient(testf, p)
> dp3 = ForwardDiff.gradient(testf, p)
> dp1[1] ≈ dp2 ≈ dp3
> 
> ```

Here the error, when I use 1.12

> **Summary**
>
> ```julia-auto
> [61215] signal 11 (1): Segmentation fault
> in expression starting at REPL[8]:1
> emit_unboxed_coercion at /cache/build/builder-amdci4-0/julialang/julia-release-1-dot-12/src/intrinsics.cpp:394 [inlined]
> emit_unbox at /cache/build/builder-amdci4-0/julialang/julia-release-1-dot-12/src/intrinsics.cpp:458
> emit_condition at /cache/build/builder-amdci4-0/julialang/julia-release-1-dot-12/src/codegen.cpp:6066
> emit_condition at /cache/build/builder-amdci4-0/julialang/julia-release-1-dot-12/src/codegen.cpp:6079 [inlined]
> emit_function at /cache/build/builder-amdci4-0/julialang/julia-release-1-dot-12/src/codegen.cpp:9271
> jl_emit_code at /cache/build/builder-amdci4-0/julialang/julia-release-1-dot-12/src/codegen.cpp:9727
> jl_emit_codeinst at /cache/build/builder-amdci4-0/julialang/julia-release-1-dot-12/src/codegen.cpp:9798
> jl_emit_codeinst_to_jit_impl at /cache/build/builder-amdci4-0/julialang/julia-release-1-dot-12/src/jitlayers.cpp:770
> jl_add_codeinst_to_jit at /cache/build/builder-amdci4-0/julialang/julia-release-1-dot-12/src/gf.c:3372
> add_codeinsts_to_jit! at ./../usr/share/julia/Compiler/src/typeinfer.jl:1436
> typeinf_ext_toplevel at ./../usr/share/julia/Compiler/src/typeinfer.jl:1443 [inlined]
> typeinf_ext_toplevel at ./../usr/share/julia/Compiler/src/typeinfer.jl:1451
> jfptr_typeinf_ext_toplevel_117555.1 at /home/marcobonici/.julia/juliaup/julia-1.12.0+0.x64.linux.gnu/lib/julia/sys.so (unknown line)
> jl_apply at /cache/build/builder-amdci4-0/julialang/julia-release-1-dot-12/src/julia.h:2387 [inlined]
> jl_type_infer at /cache/build/builder-amdci4-0/julialang/julia-release-1-dot-12/src/gf.c:462
> jl_compile_method_internal at /cache/build/builder-amdci4-0/julialang/julia-release-1-dot-12/src/gf.c:3512
> _jl_invoke at /cache/build/builder-amdci4-0/julialang/julia-release-1-dot-12/src/gf.c:4002 [inlined]
> ijl_apply_generic at /cache/build/builder-amdci4-0/julialang/julia-release-1-dot-12/src/gf.c:4210
> jl_apply at /cache/build/builder-amdci4-0/julialang/julia-release-1-dot-12/src/julia.h:2387 [inlined]
> jl_f__apply_iterate at /cache/build/builder-amdci4-0/julialang/julia-release-1-dot-12/src/builtins.c:868
> jl_apply at /cache/build/builder-amdci4-0/julialang/julia-release-1-dot-12/src/julia.h:2387 [inlined]
> jl_f__apply_iterate at /cache/build/builder-amdci4-0/julialang/julia-release-1-dot-12/src/builtins.c:868
> _apply at ./boot.jl:1019
> adjoint at /home/marcobonici/.julia/packages/Zygote/55SqB/src/lib/lib.jl:211 [inlined]
> _pullback at /home/marcobonici/.julia/packages/ZygoteRules/CkVIK/src/adjoint.jl:67 [inlined]
> IntegralProblem at /home/marcobonici/.julia/packages/SciMLBase/b4Q81/src/problems/integral_problems.jl:79 [inlined]
> _pullback at /home/marcobonici/.julia/packages/Zygote/55SqB/src/compiler/interface2.jl:0
> unknown function (ip: 0x7a77d9decc12) at (unknown file)
> jl_apply at /cache/build/builder-amdci4-0/julialang/julia-release-1-dot-12/src/julia.h:2387 [inlined]
> jl_f__apply_iterate at /cache/build/builder-amdci4-0/julialang/julia-release-1-dot-12/src/builtins.c:868
> jl_apply at /cache/build/builder-amdci4-0/julialang/julia-release-1-dot-12/src/julia.h:2387 [inlined]
> jl_f__apply_iterate at /cache/build/builder-amdci4-0/julialang/julia-release-1-dot-12/src/builtins.c:868
> _apply at ./boot.jl:1019
> _pullback at /home/marcobonici/.julia/packages/Zygote/55SqB/src/compiler/interface2.jl:81
> unknown function (ip: 0x7a77d9dec762) at (unknown file)
> jl_apply at /cache/build/builder-amdci4-0/julialang/julia-release-1-dot-12/src/julia.h:2387 [inlined]
> jl_f__apply_iterate at /cache/build/builder-amdci4-0/julialang/julia-release-1-dot-12/src/builtins.c:868
> jl_apply at /cache/build/builder-amdci4-0/julialang/julia-release-1-dot-12/src/julia.h:2387 [inlined]
> jl_f__apply_iterate at /cache/build/builder-amdci4-0/julialang/julia-release-1-dot-12/src/builtins.c:868
> _apply at ./boot.jl:1019
> adjoint at /home/marcobonici/.julia/packages/Zygote/55SqB/src/lib/lib.jl:211 [inlined]
> _pullback at /home/marcobonici/.julia/packages/ZygoteRules/CkVIK/src/adjoint.jl:67 [inlined]
> IntegralProblem at /home/marcobonici/.julia/packages/SciMLBase/b4Q81/src/problems/integral_problems.jl:76 [inlined]
> _pullback at /home/marcobonici/.julia/packages/Zygote/55SqB/src/compiler/interface2.jl:0
> unknown function (ip: 0x7a77d9dbf522) at (unknown file)
> testf at ./REPL[6]:2 [inlined]
> _pullback at /home/marcobonici/.julia/packages/Zygote/55SqB/src/compiler/interface2.jl:0
> pullback at /home/marcobonici/.julia/packages/Zygote/55SqB/src/compiler/interface.jl:96
> pullback at /home/marcobonici/.julia/packages/Zygote/55SqB/src/compiler/interface.jl:94 [inlined]
> gradient at /home/marcobonici/.julia/packages/Zygote/55SqB/src/compiler/interface.jl:153
> jfptr_gradient_19838 at /home/marcobonici/.julia/compiled/v1.12/Zygote/4kbLI_9sbRe.so (unknown line)
> jl_apply at /cache/build/builder-amdci4-0/julialang/julia-release-1-dot-12/src/julia.h:2387 [inlined]
> do_call at /cache/build/builder-amdci4-0/julialang/julia-release-1-dot-12/src/interpreter.c:123
> eval_value at /cache/build/builder-amdci4-0/julialang/julia-release-1-dot-12/src/interpreter.c:243
> eval_stmt_value at /cache/build/builder-amdci4-0/julialang/julia-release-1-dot-12/src/interpreter.c:194 [inlined]
> eval_body at /cache/build/builder-amdci4-0/julialang/julia-release-1-dot-12/src/interpreter.c:707
> jl_interpret_toplevel_thunk at /cache/build/builder-amdci4-0/julialang/julia-release-1-dot-12/src/interpreter.c:898
> jl_toplevel_eval_flex at /cache/build/builder-amdci4-0/julialang/julia-release-1-dot-12/src/toplevel.c:1035
> __repl_entry_eval_expanded_with_loc at /cache/build/builder-amdci4-0/julialang/julia-release-1-dot-12/usr/share/julia/stdlib/v1.12/REPL/src/REPL.jl:301
> jl_apply at /cache/build/builder-amdci4-0/julialang/julia-release-1-dot-12/src/julia.h:2387 [inlined]
> jl_f_invokelatest at /cache/build/builder-amdci4-0/julialang/julia-release-1-dot-12/src/builtins.c:881
> toplevel_eval_with_hooks at /cache/build/builder-amdci4-0/julialang/julia-release-1-dot-12/usr/share/julia/stdlib/v1.12/REPL/src/REPL.jl:308
> toplevel_eval_with_hooks at /cache/build/builder-amdci4-0/julialang/julia-release-1-dot-12/usr/share/julia/stdlib/v1.12/REPL/src/REPL.jl:312
> toplevel_eval_with_hooks at /cache/build/builder-amdci4-0/julialang/julia-release-1-dot-12/usr/share/julia/stdlib/v1.12/REPL/src/REPL.jl:305 [inlined]
> eval_user_input at /cache/build/builder-amdci4-0/julialang/julia-release-1-dot-12/usr/share/julia/stdlib/v1.12/REPL/src/REPL.jl:330
> repl_backend_loop at /cache/build/builder-amdci4-0/julialang/julia-release-1-dot-12/usr/share/julia/stdlib/v1.12/REPL/src/REPL.jl:452
> #start_repl_backend#41 at /cache/build/builder-amdci4-0/julialang/julia-release-1-dot-12/usr/share/julia/stdlib/v1.12/REPL/src/REPL.jl:427
> start_repl_backend at /cache/build/builder-amdci4-0/julialang/julia-release-1-dot-12/usr/share/julia/stdlib/v1.12/REPL/src/REPL.jl:424 [inlined]
> #run_repl#50 at /cache/build/builder-amdci4-0/julialang/julia-release-1-dot-12/usr/share/julia/stdlib/v1.12/REPL/src/REPL.jl:653
> run_repl at /cache/build/builder-amdci4-0/julialang/julia-release-1-dot-12/usr/share/julia/stdlib/v1.12/REPL/src/REPL.jl:639
> jfptr_run_repl_18494.1 at /home/marcobonici/.julia/juliaup/julia-1.12.0+0.x64.linux.gnu/share/julia/compiled/v1.12/REPL/u0gqU_g0Uq3.so (unknown line)
> run_std_repl at ./client.jl:478
> jfptr_run_std_repl_69973.1 at /home/marcobonici/.julia/juliaup/julia-1.12.0+0.x64.linux.gnu/lib/julia/sys.so (unknown line)
> jl_apply at /cache/build/builder-amdci4-0/julialang/julia-release-1-dot-12/src/julia.h:2387 [inlined]
> jl_f_invokelatest at /cache/build/builder-amdci4-0/julialang/julia-release-1-dot-12/src/builtins.c:881
> run_main_repl at ./client.jl:499
> repl_main at ./client.jl:586 [inlined]
> _start at ./client.jl:561
> jfptr__start_85044.1 at /home/marcobonici/.julia/juliaup/julia-1.12.0+0.x64.linux.gnu/lib/julia/sys.so (unknown line)
> jl_apply at /cache/build/builder-amdci4-0/julialang/julia-release-1-dot-12/src/julia.h:2387 [inlined]
> true_main at /cache/build/builder-amdci4-0/julialang/julia-release-1-dot-12/src/jlapi.c:971
> jl_repl_entrypoint at /cache/build/builder-amdci4-0/julialang/julia-release-1-dot-12/src/jlapi.c:1139
> main at /cache/build/builder-amdci4-0/julialang/julia-release-1-dot-12/cli/loader_exe.c:58
> unknown function (ip: 0x7a77f622a1c9) at /lib/x86_64-linux-gnu/libc.so.6
> __libc_start_main at /lib/x86_64-linux-gnu/libc.so.6 (unknown line)
> unknown function (ip: 0x4010b8) at /workspace/srcdir/glibc-2.17/csu/../sysdeps/x86_64/start.S
> Allocations: 47911520 (Pool: 47909110; Big: 2410); GC: 27
> Segmentation fault (core dumped)
> 
> ```

Is this an issue on which side? Zygote, Integrals…? It looks to me that Integrals.jl is failing to generate the code for the pullbacks, but I am not so sure.  
Thanks in advance

---

<div class="post-metadata">

### Author: ![marcobonici](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/marcobonici/32/20549_2.png) [@marcobonici](https://discourse.julialang.org/u/marcobonici)
#### Post date: [October 16, 2025, 11:43pm UTC](https://discourse.julialang.org/t/integrals-jl-zygote-not-working-on-1-12/133214/2 "2025-10-16T23:43:49Z")

</div>

Opened issue [here](https://github.com/SciML/Integrals.jl/issues/281).
