Zygote silently fails on CircularArrays.jl

It seems that Zygote silently fails when differentiating a function that takes and outputs CircularArrays, using a Zygote.Buffer to allow mutation. Here’s a comparison with ForwardDiff:

using Zygote, ForwardDiff, CircularArrays

a = CircularArray([1.0])
function f(x)
    new = Zygote.Buffer(x)
    new[1] = x[1] + x[2]
    return copy(new)
end
display(Zygote.jacobian(f, a)[1])
# 1×1 CircularArray(::Matrix{Float64}):
#  1.0
display(ForwardDiff.jacobian(f, a))
# 1×1 CircularArray(::Matrix{Float64}):
#  2.0
b = [1.0]
function g(x)
    new = Zygote.Buffer(x)
    new[1] = x[1] + x[1]
    return copy(new)
end
display(Zygote.jacobian(g, b)[1])
# 1×1 Matrix{Float64}:
#  2.0
display(ForwardDiff.jacobian(g, b))
# 1×1 Matrix{Float64}:
#  2.0

Is this a known limitation of Zygote ? Given the simplicity of the implementation of CircularArrays, I would’ve expected it to work.

Thank you!