{"record":{"id":"d6ec6411494d489a","repo":"clockworklabs/SpacetimeDB","slug":"dbconnectionbuilder-can-only-register-a-single-on-d6ec64","errorCode":null,"errorMessage":"DbConnectionBuilder can only register a single `on_disconnect` callback.\n\nInstead of registering multiple `on_disconnect` callbacks, register a single callback which does multiple operations.","messagePattern":"DbConnectionBuilder can only register a single `on_disconnect` callback\\.\n\nInstead of registering multiple `on_disconnect` callbacks, register a single callback which does multiple operations\\.","errorType":"panic","errorClass":null,"httpStatus":null,"severity":"error","filePath":"sdks/rust/src/db_connection.rs","lineNumber":1185,"sourceCode":"Instead of registering multiple `on_connect_error` callbacks, register a single callback which does multiple operations.\"\n            );\n        }\n\n        self.on_connect_error = Some(Box::new(callback));\n        self\n    }\n\n    /// Register a callback to run when an established connection is closed.\n    ///\n    /// The connection is established after the initial connection message is\n    /// received from the host. Connection failures before that point invoke\n    /// [`Self::on_connect_error`] instead.\n    pub fn on_disconnect(\n        mut self,\n        callback: impl FnOnce(&M::ErrorContext, Option<crate::Error>) + Send + 'static,\n    ) -> Self {\n        if self.on_disconnect.is_some() {\n            panic!(\n                \"DbConnectionBuilder can only register a single `on_disconnect` callback.\n\nInstead of registering multiple `on_disconnect` callbacks, register a single callback which does multiple operations.\"\n            );\n        }\n        self.on_disconnect = Some(Box::new(callback));\n        self\n    }\n}\n\n/// Create a [`DbContextImplInner`] wrapped in `Arc<Mutex<...>>`.\nfn build_db_ctx_inner<M: SpacetimeModule>(\n    #[cfg(not(feature = \"browser\"))] runtime: Option<Runtime>,\n\n    on_connect_cb: Option<OnConnectCallback<M>>,\n    on_connect_error_cb: Option<OnConnectErrorCallback<M>>,\n    on_disconnect_cb: Option<OnDisconnectCallback<M>>,\n) -> Arc<StdMutex<DbContextImplInner<M>>> {","sourceCodeStart":1167,"sourceCodeEnd":1203,"githubUrl":"https://github.com/clockworklabs/SpacetimeDB/blob/6dee26c6efc2856793e12b148a59742964f5d783/sdks/rust/src/db_connection.rs#L1167-L1203","documentation":"Error \"DbConnectionBuilder can only register a single `on_disconnect` callback.\n\nInstead of registering multiple `on_disconnect` callbacks, register a single callback which does multiple operations.\" thrown in clockworklabs/SpacetimeDB.","triggerScenarios":"Thrown at sdks/rust/src/db_connection.rs:1185 when the library encounters an invalid state.","commonSituations":"See trigger scenarios.","solutions":[],"exampleFix":null,"handlingStrategy":null,"validationCode":null,"typeGuard":null,"tryCatchPattern":null,"preventionTips":[],"tags":[],"backgroundTag":null,"analyzedSha":"6dee26c6efc2856793e12b148a59742964f5d783","analyzedAt":"2026-08-20T06:08:37.179Z","contentChangedAt":"2026-08-20T06:08:37.179Z","schemaVersion":2},"datasetVersion":"2026-09-14T05:17:10.506Z"}