slint-ui/slint · error

The Weak doesn't hold a valid component

Error message

The Weak doesn't hold a valid component

What it means

Error "The Weak doesn't hold a valid component" thrown in slint-ui/slint.

Source

Thrown at internal/core/api.rs:1218

                return None;
            }
            T::upgrade_from_weak_inner(&self.inner)
        }

        /// Convenience function that returns a new strongly referenced component if
        /// some other instance still holds a strong reference and the current thread
        /// is the thread that created this component.
        /// Otherwise, this function panics.
        #[track_caller]
        pub fn unwrap(&self) -> T {
            #[cfg(feature = "std")]
            if std::thread::current().id() != self.thread {
                panic!(
                    "Trying to upgrade a Weak from a different thread than the one it belongs to"
                );
            }
            T::upgrade_from_weak_inner(&self.inner)
                .expect("The Weak doesn't hold a valid component")
        }

        /// A helper function to allow creation on `component_factory::Component` from
        /// a `ComponentHandle`
        pub(crate) fn inner(&self) -> T::WeakInner {
            self.inner.clone()
        }

        /// Convenience function that combines [`invoke_from_event_loop()`] with [`Self::upgrade()`]
        ///
        /// The given functor will be added to an internal queue and will wake the event loop.
        /// On the next iteration of the event loop, the functor will be executed with a `T` as an argument.
        ///
        /// If the component was dropped because there are no more strong reference to the component,
        /// the functor will not be called.
        ///
        /// # Example
        /// ```rust

View on GitHub (pinned to 3fd8f2ec03)

Solutions

  1. Keep a strong reference to the component alive while using Weak.
  2. Upgrade the Weak to a strong reference before use and handle None.

When it happens

Trigger: Thrown at internal/core/api.rs:1218 when the library encounters an invalid state.

Common situations: See trigger scenarios.


AI-assisted analysis of slint-ui/slint@3fd8f2ec03 (2026-08-19). Data as JSON: /api/errors/4a525feae7c53f36. Report an issue: GitHub.