But not an undefined check, resulting in observed being undefined and then erroring out when observed.element is attempted to be resolved.
As to whyobserved is undefined, I am not sure. I see that it's conditionally initialized in the constructor... although I don't quite understand how that condition could be false.
Description
Occasionally, when tearing down via rive-react's
useRive
hook, we're seeing an error in rive-wasm / canvas:Cannot read properties of undefined (reading 'element')
(see screenshot of stack track below)Provide a Repro
I don't have a repro, but I do have a stacktrace from our Sentry instance:
This clearly shows that
observed
is undefined.Our usage is extremely simple:
Browser & Versions
pnpm -v
: 9.5.0@rive-app/react-canvas 4.15.2
@rive-app/canvas 2.22.0
Additional context
What I believe is happening:
There is a
null
check here: https://github.com/rive-app/rive-wasm/blob/9138225b8667d11fd492ff59039074b77f0c21f7/js/src/rive.ts#L2104-L2106But not an
undefined
check, resulting inobserved
beingundefined
and then erroring out whenobserved.element
is attempted to be resolved.As to why
observed
isundefined
, I am not sure. I see that it's conditionally initialized in the constructor... although I don't quite understand how that condition could be false.https://github.com/rive-app/rive-wasm/blob/9138225b8667d11fd492ff59039074b77f0c21f7/js/src/rive.ts#L1564-L1569
One straightforward fix might simply be initializing it to
null
here (but this does not answer why):https://github.com/rive-app/rive-wasm/blob/9138225b8667d11fd492ff59039074b77f0c21f7/js/src/rive.ts#L1491-L1492