Qt Warning: *path/to/file.qml*: RangeError: Maximum call stack size exceeded

When runing this

using QML
using Observables

slidervalue = Observable(0.0)

loadqml(
  joinpath(pwd(),"slider.qml"),
  variables = JuliaPropertyMap(
    "slidervalue" => slidervalue
  )
)

exec()

and the content of “slider.qml” being

import QtQuick 2.6
import QtQuick.Controls 2.3
import org.julialang 1.0

ApplicationWindow {
  id: mainWin
  title: "My Application"
  width: 100
  height: 100
  visible: true

  Rectangle {
    anchors.fill: parent
    color: "red"

    Text {
      anchors.centerIn: parent
      text: props.hi + Julia.world()
    }
  }
}

I get the following error

Qt Warning: qrc:/qt-project.org/imports/QtQuick/Controls/Fusion/ApplicationWindow.qml:2134880960: RangeError: Maximum call stack size exceeded. (qrc:/qt-project.org/imports/QtQuick/Controls/Fusion/ApplicationWindow.qml:2134880960, (null))
Qt Warning: path/slider.qml:2134880912: RangeError: Maximum call stack size exceeded. (path/slider.qml:2134880912, (null))
Qt Warning: path/slider.qml:2134880912: RangeError: Maximum call stack size exceeded. (path/slider.qml:2134880912, (null))
Qt Warning: path/slider.qml:2134880912: RangeError: Maximum call stack size exceeded. (path/slider.qml:2134880912, (null))

where I manually replaced the displayed path with path for the purpose of this post.

General informations:

  • Julia v.1.11.1
  • Package status:
    • QML v0.9.1
    • Observables v0.5.5
  • OS: Debian GNU/Linux 12 (bookworm)
  • Processor: Intel Core i7-7500U x4
  • Graphics NV117/Mesa Intel HD Graphics 620 (KBL GT2)

What is the problem and how to solve it ?

For your information, this code example comes from a talk given by Bart Janssens at the JuliaCon 2020 and correspnods to the first example in this video: https://youtu.be/AddbHe05yRg?si=rMqBECxDDAnKFK4I&t=38
If needed, the corresponding source material can be found here GitHub - barche/juliacon2020-qml: Juliacon 2020 slides for the QML.jl talk

Note that I changed the exec_async() from the example to exec() in order for it to run.