debug mode panic over double serialization #1079

Open
opened 2025-09-25 13:11:13 +00:00 by nex · 2 comments
Owner
2025-09-25T13:10:11.973794Z DEBUG router{method=POST path=/_matrix/client/v3/rooms}:request:handle{active=5 handled=717}:invite{client=79.127.145.84}:pdu{room_id=!nx4lB9bnxegmEXVaAN:timedout.uk event_id=$678tz9DfYAFeh2U3QewYbvTTtYq1HAYne76bolwntyY}: conduwuit_service::rooms::event_handler::upgrade_outlier_pdu: Forcing new room state
thread 'conduwuit:worker' panicked at /home/nex/RustroverProjects/continuwuity/src/database/ser.rs:253:3:
serializing string at the top-level; you can skip serialization instead
  2025-09-25T13:10:11.978523Z ERROR conduwuit_router::layers: serializing string at the top-level; you can skip serialization instead
    at src/router/layers.rs:190 on conduwuit:worker ThreadId(2)
    in conduwuit_router::layers::panic
    in conduwuit_router::request::handle with active=5 handled=717
    in conduwuit_router::request::request
    in conduwuit_router::layers::router with method=POST path=/_matrix/client/v3/rooms
  2025-09-25T13:10:11.980330Z ERROR conduwuit_router::request: 500 Internal Server Error, method: POST, uri: /_matrix/client/v3/rooms/!nx4lB9bnxegmEXVaAN%3Atimedout.uk/invite
    at src/router/request.rs:105 on conduwuit:worker ThreadId(2)
    in conduwuit_router::request::request
    in conduwuit_router::layers::router with method=POST path=/_matrix/client/v3/rooms
  2025-09-25T13:10:11.980883Z ERROR tower_http::trace::on_failure: response failed, classification: Status code: 500 Internal Server Error, latency: 272 ms
    at /home/nex/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/tower-http-0.6.6/src/trace/on_failure.rs:93 on conduwuit:worker ThreadId(2)
    in conduwuit_router::layers::router with method=POST path=/_matrix/client/v3/rooms
``` 2025-09-25T13:10:11.973794Z DEBUG router{method=POST path=/_matrix/client/v3/rooms}:request:handle{active=5 handled=717}:invite{client=79.127.145.84}:pdu{room_id=!nx4lB9bnxegmEXVaAN:timedout.uk event_id=$678tz9DfYAFeh2U3QewYbvTTtYq1HAYne76bolwntyY}: conduwuit_service::rooms::event_handler::upgrade_outlier_pdu: Forcing new room state thread 'conduwuit:worker' panicked at /home/nex/RustroverProjects/continuwuity/src/database/ser.rs:253:3: serializing string at the top-level; you can skip serialization instead 2025-09-25T13:10:11.978523Z ERROR conduwuit_router::layers: serializing string at the top-level; you can skip serialization instead at src/router/layers.rs:190 on conduwuit:worker ThreadId(2) in conduwuit_router::layers::panic in conduwuit_router::request::handle with active=5 handled=717 in conduwuit_router::request::request in conduwuit_router::layers::router with method=POST path=/_matrix/client/v3/rooms 2025-09-25T13:10:11.980330Z ERROR conduwuit_router::request: 500 Internal Server Error, method: POST, uri: /_matrix/client/v3/rooms/!nx4lB9bnxegmEXVaAN%3Atimedout.uk/invite at src/router/request.rs:105 on conduwuit:worker ThreadId(2) in conduwuit_router::request::request in conduwuit_router::layers::router with method=POST path=/_matrix/client/v3/rooms 2025-09-25T13:10:11.980883Z ERROR tower_http::trace::on_failure: response failed, classification: Status code: 500 Internal Server Error, latency: 272 ms at /home/nex/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/tower-http-0.6.6/src/trace/on_failure.rs:93 on conduwuit:worker ThreadId(2) in conduwuit_router::layers::router with method=POST path=/_matrix/client/v3/rooms ```
nex changed title from debug mode panic over double serialization while processing transaction to debug mode panic over double serialization 2025-09-25 13:13:55 +00:00
Author
Owner

Narrowed it down to this routine

let roomuser_id = (room_id, user_id);
let roomuser_id = serialize_key(roomuser_id).expect("failed to serialize roomuser_id");
let userroom_id = (user_id, room_id);
let userroom_id = serialize_key(userroom_id).expect("failed to serialize userroom_id");
self.db
.userroomid_invitestate
.raw_put(&userroom_id, Json(last_state.unwrap_or_default()));
self.db
.roomuserid_invitecount
.raw_aput::<8, _, _>(&roomuser_id, self.services.globals.next_count().unwrap());
self.db
.userroomid_invitesender
.raw_put(&userroom_id, sender_user);

Narrowed it down to this routine https://forgejo.ellis.link/continuwuation/continuwuity/src/commit/13b7538785596f9686e2c7206ec6379d11dc9635/src/service/rooms/state_cache/update.rs#L355-L369
Author
Owner
s::event_handler::upgrade_outlier_pdu: Forcing new room state
thread 'conduwuit:worker' panicked at /home/nex/RustroverProjects/continuwuity/src/database/ser.rs:253:3:
serializing string at the top-level; you can skip serialization instead
stack backtrace:
   0: __rustc::rust_begin_unwind
             at ./rustc/29483883eed69d5fb4db01964cdf2af4d86e9cb2/library/std/src/panicking.rs:697:5
   1: core::panicking::panic_fmt
             at ./rustc/29483883eed69d5fb4db01964cdf2af4d86e9cb2/library/core/src/panicking.rs:75:14
   2: <&mut conduwuit_database::ser::Serializer<W> as serde_core::ser::Serializer>::serialize_str
             at ./home/nex/RustroverProjects/continuwuity/src/database/ser.rs:253:3
   3: <ruma_common::identifiers::user_id::UserId as serde_core::ser::Serialize>::serialize
             at ./home/nex/.cargo/git/checkouts/ruwuma-2d963c4f0b88555a/d188234/crates/ruma-common/src/identifiers/user_id.rs:23:48
   4: serde_core::ser::impls::<impl serde_core::ser::Serialize for &T>::serialize
             at ./home/nex/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/serde_core-1.0.225/src/ser/impls.rs:472:26
   5: conduwuit_database::ser::serialize
             at ./home/nex/RustroverProjects/continuwuity/src/database/ser.rs:35:6
   6: conduwuit_database::map::insert::<impl conduwuit_database::map::Map>::raw_bput
             at ./home/nex/RustroverProjects/continuwuity/src/database/map/insert.rs:185:12
   7: conduwuit_database::map::insert::<impl conduwuit_database::map::Map>::raw_put
             at ./home/nex/RustroverProjects/continuwuity/src/database/map/insert.rs:61:7
   8: conduwuit_service::rooms::state_cache::update::<impl conduwuit_service::rooms::state_cache::Service>::mark_as_invited::{{closure}}::{{closure}}
             at ./home/nex/RustroverProjects/continuwuity/src/service/rooms/state_cache/update.rs:369:4
   9: <tracing::instrument::Instrumented<T> as core::future::future::Future>::poll
             at ./home/nex/.cargo/git/checkouts/tracing-6f9516a190fc2e8c/1e64095/tracing/src/instrument.rs:321:15
  10: conduwuit_service::rooms::state_cache::update::<impl conduwuit_service::rooms::state_cache::Service>::mark_as_invited::{{closure}}
             at ./home/nex/RustroverProjects/continuwuity/src/service/rooms/state_cache/update.rs:346:1
  11: conduwuit_service::rooms::state_cache::update::<impl conduwuit_service::rooms::state_cache::Service>::update_membership::{{closure}}::{{closure}}
             at ./home/nex/RustroverProjects/continuwuity/src/service/rooms/state_cache/update.rs:140:6
  12: <tracing::instrument::Instrumented<T> as core::future::future::Future>::poll
             at ./home/nex/.cargo/git/checkouts/tracing-6f9516a190fc2e8c/1e64095/tracing/src/instrument.rs:321:15
  13: conduwuit_service::rooms::state_cache::update::<impl conduwuit_service::rooms::state_cache::Service>::update_membership::{{closure}}
             at ./home/nex/RustroverProjects/continuwuity/src/service/rooms/state_cache/update.rs:23:1
  14: conduwuit_service::rooms::state::Service::force_state::{{closure}}
             at ./home/nex/RustroverProjects/continuwuity/src/service/rooms/state/mod.rs:144:8
  15: conduwuit_service::rooms::event_handler::upgrade_outlier_pdu::<impl conduwuit_service::rooms::event_handler::Service>::upgrade_outlier_to_timeline_pdu::{{closure}}
             at ./home/nex/RustroverProjects/continuwuity/src/service/rooms/event_handler/upgrade_outlier_pdu.rs:249:5
  16: conduwuit_service::rooms::event_handler::handle_prev_pdu::<impl conduwuit_service::rooms::event_handler::Service>::handle_prev_pdu::{{closure}}::{{closure}}
             at ./home/nex/RustroverProjects/continuwuity/src/service/rooms/event_handler/handle_prev_pdu.rs:81:4
  17: <tracing::instrument::Instrumented<T> as core::future::future::Future>::poll
             at ./home/nex/.cargo/git/checkouts/tracing-6f9516a190fc2e8c/1e64095/tracing/src/instrument.rs:321:15
  18: conduwuit_service::rooms::event_handler::handle_prev_pdu::<impl conduwuit_service::rooms::event_handler::Service>::handle_prev_pdu::{{closure}}
             at ./home/nex/RustroverProjects/continuwuity/src/service/rooms/event_handler/handle_prev_pdu.rs:13:1
  19: <F as futures_core::future::TryFuture>::try_poll
             at ./home/nex/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/futures-core-0.3.31/src/future.rs:92:14
  20: <futures_util::future::try_future::into_future::IntoFuture<Fut> as core::future::future::Future>::poll
             at ./home/nex/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/futures-util-0.3.31/src/future/try_future/into_future.rs:34:31
  21: <futures_util::future::future::map::Map<Fut,F> as core::future::future::Future>::poll
             at ./home/nex/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/futures-util-0.3.31/src/future/future/map.rs:55:44
  22: <futures_util::future::future::Inspect<Fut,F> as core::future::future::Future>::poll
             at ./home/nex/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/futures-util-0.3.31/src/lib.rs:86:35
  23: <futures_util::future::try_future::InspectErr<Fut,F> as core::future::future::Future>::poll
             at ./home/nex/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/futures-util-0.3.31/src/lib.rs:86:35
  24: <futures_util::future::future::map::Map<Fut,F> as core::future::future::Future>::poll
             at ./home/nex/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/futures-util-0.3.31/src/future/future/map.rs:55:44
  25: <futures_util::future::future::Map<Fut,F> as core::future::future::Future>::poll
             at ./home/nex/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/futures-util-0.3.31/src/lib.rs:86:35
  26: <F as futures_core::future::TryFuture>::try_poll
             at ./home/nex/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/futures-core-0.3.31/src/future.rs:92:14
  27: <futures_util::stream::try_stream::try_for_each::TryForEach<St,Fut,F> as core::future::future::Future>::poll
             at ./home/nex/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/futures-util-0.3.31/src/stream/try_stream/try_for_each.rs:57:28
  28: <core::pin::Pin<P> as core::future::future::Future>::poll
             at ./home/nex/.rustup/toolchains/1.89.0-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/core/src/future/future.rs:124:9
  29: conduwuit_service::rooms::event_handler::handle_incoming_pdu::<impl conduwuit_service::rooms::event_handler::Service>::handle_incoming_pdu::{{closure}}::{{closure}}
             at ./home/nex/RustroverProjects/continuwuity/src/service/rooms/event_handler/handle_incoming_pdu.rs:177:4
  30: <tracing::instrument::Instrumented<T> as core::future::future::Future>::poll
             at ./home/nex/.cargo/git/checkouts/tracing-6f9516a190fc2e8c/1e64095/tracing/src/instrument.rs:321:15
  31: conduwuit_service::rooms::event_handler::handle_incoming_pdu::<impl conduwuit_service::rooms::event_handler::Service>::handle_incoming_pdu::{{closure}}
             at ./home/nex/RustroverProjects/continuwuity/src/service/rooms/event_handler/handle_incoming_pdu.rs:47:1
  32: conduwuit_api::server::send::handle_room::{{closure}}::{{closure}}::{{closure}}
             at ./home/nex/RustroverProjects/continuwuity/src/api/server/send.rs:198:6
  33: <F as futures_core::future::TryFuture>::try_poll
             at ./home/nex/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/futures-core-0.3.31/src/future.rs:92:14
  34: <futures_util::stream::try_stream::and_then::AndThen<St,Fut,F> as futures_core::stream::Stream>::poll_next
             at ./home/nex/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/futures-util-0.3.31/src/stream/try_stream/and_then.rs:62:39
  35: <S as futures_core::stream::TryStream>::try_poll_next
             at ./home/nex/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/futures-core-0.3.31/src/stream.rs:206:14
  36: <futures_util::stream::try_stream::try_collect::TryCollect<St,C> as core::future::future::Future>::poll
             at ./home/nex/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/futures-util-0.3.31/src/stream/try_stream/try_collect.rs:46:47
  37: conduwuit_api::server::send::handle_room::{{closure}}
             at ./home/nex/RustroverProjects/continuwuity/src/api/server/send.rs:210:4
  38: <F as futures_core::future::TryFuture>::try_poll
             at ./home/nex/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/futures-core-0.3.31/src/future.rs:92:14
  39: <futures_util::future::try_future::into_future::IntoFuture<Fut> as core::future::future::Future>::poll
             at ./home/nex/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/futures-util-0.3.31/src/future/try_future/into_future.rs:34:31
  40: <futures_util::future::future::map::Map<Fut,F> as core::future::future::Future>::poll
             at ./home/nex/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/futures-util-0.3.31/src/future/future/map.rs:55:44
  41: <futures_util::future::future::Map<Fut,F> as core::future::future::Future>::poll
             at ./home/nex/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/futures-util-0.3.31/src/lib.rs:86:35
  42: <futures_util::future::try_future::MapOk<Fut,F> as core::future::future::Future>::poll
             at ./home/nex/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/futures-util-0.3.31/src/lib.rs:86:35
  43: <F as futures_core::future::TryFuture>::try_poll
             at ./home/nex/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/futures-core-0.3.31/src/future.rs:92:14
  44: <futures_util::future::try_future::into_future::IntoFuture<Fut> as core::future::future::Future>::poll
             at ./home/nex/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/futures-util-0.3.31/src/future/try_future/into_future.rs:34:31
  45: <futures_util::future::future::map::Map<Fut,F> as core::future::future::Future>::poll
             at ./home/nex/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/futures-util-0.3.31/src/future/future/map.rs:55:44
  46: <futures_util::future::future::Map<Fut,F> as core::future::future::Future>::poll
             at ./home/nex/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/futures-util-0.3.31/src/lib.rs:86:35
  47: <futures_util::future::try_future::MapOk<Fut,F> as core::future::future::Future>::poll
             at ./home/nex/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/futures-util-0.3.31/src/lib.rs:86:35
  48: <F as futures_core::future::TryFuture>::try_poll
             at ./home/nex/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/futures-core-0.3.31/src/future.rs:92:14
  49: <futures_util::future::try_future::into_future::IntoFuture<Fut> as core::future::future::Future>::poll
             at ./home/nex/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/futures-util-0.3.31/src/future/try_future/into_future.rs:34:31
  50: <futures_util::stream::futures_unordered::FuturesUnordered<Fut> as futures_core::stream::Stream>::poll_next
             at ./home/nex/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/futures-util-0.3.31/src/stream/futures_unordered/mod.rs:528:24
  51: futures_util::stream::stream::StreamExt::poll_next_unpin
             at ./home/nex/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/futures-util-0.3.31/src/stream/stream/mod.rs:1638:24
  52: <futures_util::stream::try_stream::try_buffer_unordered::TryBufferUnordered<St> as futures_core::stream::Stream>::poll_next
             at ./home/nex/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/futures-util-0.3.31/src/stream/try_stream/try_buffer_unordered.rs:62:38
  53: <S as futures_core::stream::TryStream>::try_poll_next
             at ./home/nex/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/futures-core-0.3.31/src/stream.rs:206:14
  54: <futures_util::stream::try_stream::try_flatten::TryFlatten<St> as futures_core::stream::Stream>::poll_next
             at ./home/nex/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/futures-util-0.3.31/src/stream/try_stream/try_flatten.rs:66:65
  55: <S as futures_core::stream::TryStream>::try_poll_next
             at ./home/nex/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/futures-core-0.3.31/src/stream.rs:206:14
  56: <futures_util::stream::try_stream::try_collect::TryCollect<St,C> as core::future::future::Future>::poll
             at ./home/nex/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/futures-util-0.3.31/src/stream/try_stream/try_collect.rs:46:47
  57: <core::pin::Pin<P> as core::future::future::Future>::poll
             at ./home/nex/.rustup/toolchains/1.89.0-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/core/src/future/future.rs:124:9
  58: conduwuit_api::server::send::handle::{{closure}}
             at ./home/nex/RustroverProjects/continuwuity/src/api/server/send.rs:164:4
  59: conduwuit_api::server::send::send_transaction_message_route::{{closure}}::{{closure}}
             at ./home/nex/RustroverProjects/continuwuity/src/api/server/send.rs:107:86
  60: <tracing::instrument::Instrumented<T> as core::future::future::Future>::poll
             at ./home/nex/.cargo/git/checkouts/tracing-6f9516a190fc2e8c/1e64095/tracing/src/instrument.rs:321:15
  61: conduwuit_api::server::send::send_transaction_message_route::{{closure}}
             at ./home/nex/RustroverProjects/continuwuity/src/api/server/send.rs:49:1
  62: <F as futures_core::future::TryFuture>::try_poll
             at ./home/nex/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/futures-core-0.3.31/src/future.rs:92:14
  63: <futures_util::future::try_future::into_future::IntoFuture<Fut> as core::future::future::Future>::poll
             at ./home/nex/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/futures-util-0.3.31/src/future/try_future/into_future.rs:34:31
  64: <futures_util::future::future::map::Map<Fut,F> as core::future::future::Future>::poll
             at ./home/nex/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/futures-util-0.3.31/src/future/future/map.rs:55:44
  65: <futures_util::future::future::Map<Fut,F> as core::future::future::Future>::poll
             at ./home/nex/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/futures-util-0.3.31/src/lib.rs:86:35
  66: <futures_util::future::try_future::MapOk<Fut,F> as core::future::future::Future>::poll
             at ./home/nex/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/futures-util-0.3.31/src/lib.rs:86:35
  67: <F as axum::handler::Handler<(M,T1,T2,T3),S>>::call::{{closure}}
             at ./home/nex/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/axum-0.7.9/src/handler/mod.rs:241:53
  68: <core::pin::Pin<P> as core::future::future::Future>::poll
             at ./home/nex/.rustup/toolchains/1.89.0-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/core/src/future/future.rs:124:9
  69: <futures_util::future::future::map::Map<Fut,F> as core::future::future::Future>::poll
             at ./home/nex/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/futures-util-0.3.31/src/future/future/map.rs:55:44
  70: <futures_util::future::future::Map<Fut,F> as core::future::future::Future>::poll
             at ./home/nex/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/futures-util-0.3.31/src/lib.rs:86:35
  71: <axum::handler::future::IntoServiceFuture<F> as core::future::future::Future>::poll
             at ./home/nex/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/axum-0.7.9/src/macros.rs:42:39
  72: <F as futures_core::future::TryFuture>::try_poll
             at ./home/nex/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/futures-core-0.3.31/src/future.rs:92:14
  73: <futures_util::future::try_future::into_future::IntoFuture<Fut> as core::future::future::Future>::poll
             at ./home/nex/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/futures-util-0.3.31/src/future/try_future/into_future.rs:34:31
  74: <futures_util::future::future::map::Map<Fut,F> as core::future::future::Future>::poll
             at ./home/nex/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/futures-util-0.3.31/src/future/future/map.rs:55:44
  75: <futures_util::future::future::Map<Fut,F> as core::future::future::Future>::poll
             at ./home/nex/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/futures-util-0.3.31/src/lib.rs:86:35
  76: <futures_util::future::try_future::MapOk<Fut,F> as core::future::future::Future>::poll
             at ./home/nex/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/futures-util-0.3.31/src/lib.rs:86:35
  77: <tower::util::map_response::MapResponseFuture<F,N> as core::future::future::Future>::poll
             at ./home/nex/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/tower-0.5.2/src/macros.rs:38:38
  78: <core::pin::Pin<P> as core::future::future::Future>::poll
             at ./home/nex/.rustup/toolchains/1.89.0-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/core/src/future/future.rs:124:9
  79: <tower::util::oneshot::Oneshot<S,Req> as core::future::future::Future>::poll
             at ./home/nex/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/tower-0.5.2/src/util/oneshot.rs:97:42
  80: <axum::routing::route::RouteFuture<E> as core::future::future::Future>::poll
             at ./home/nex/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/axum-0.7.9/src/routing/route.rs:182:68
  81: <core::panic::unwind_safe::AssertUnwindSafe<F> as core::future::future::Future>::poll
             at ./home/nex/.rustup/toolchains/1.89.0-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/core/src/panic/unwind_safe.rs:297:9
  82: <futures_util::future::future::catch_unwind::CatchUnwind<Fut> as core::future::future::Future>::poll::{{closure}}
             at ./home/nex/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/futures-util-0.3.31/src/future/future/catch_unwind.rs:37:44
  83: <core::panic::unwind_safe::AssertUnwindSafe<F> as core::ops::function::FnOnce<()>>::call_once
             at ./home/nex/.rustup/toolchains/1.89.0-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/core/src/panic/unwind_safe.rs:272:9
  84: std::panicking::catch_unwind::do_call
             at ./home/nex/.rustup/toolchains/1.89.0-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/std/src/panicking.rs:589:40
  85: __rust_try
  86: std::panicking::catch_unwind
             at ./home/nex/.rustup/toolchains/1.89.0-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/std/src/panicking.rs:552:19
  87: std::panic::catch_unwind
             at ./home/nex/.rustup/toolchains/1.89.0-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/std/src/panic.rs:359:14
  88: <futures_util::future::future::catch_unwind::CatchUnwind<Fut> as core::future::future::Future>::poll
             at ./home/nex/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/futures-util-0.3.31/src/future/future/catch_unwind.rs:37:9
  89: <tower_http::catch_panic::ResponseFuture<F,T> as core::future::future::Future>::poll
             at ./home/nex/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/tower-http-0.6.6/src/catch_panic.rs:269:38
  90: <tower_http::cors::ResponseFuture<F> as core::future::future::Future>::poll
             at ./home/nex/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/tower-http-0.6.6/src/cors/mod.rs:755:63
  91: <tower_http::set_header::response::ResponseFuture<F,M> as core::future::future::Future>::poll
             at ./home/nex/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/tower-http-0.6.6/src/set_header/response.rs:294:42
  92: <tower_http::set_header::response::ResponseFuture<F,M> as core::future::future::Future>::poll
             at ./home/nex/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/tower-http-0.6.6/src/set_header/response.rs:294:42
  93: <tower_http::set_header::response::ResponseFuture<F,M> as core::future::future::Future>::poll
             at ./home/nex/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/tower-http-0.6.6/src/set_header/response.rs:294:42
note: Some details are omitted, run with `RUST_BACKTRACE=full` for a verbose backtrace.
  2025-11-23T16:30:27.204561Z ERROR conduwuit_router::layers: serializing string at the top-level; you can skip serialization instead
    at src/router/layers.rs:190 on conduwuit:worker ThreadId(3)
    in conduwuit_router::layers::panic
    in conduwuit_router::layers::router with method=PUT path=/_matrix/federation/v1/send
``` s::event_handler::upgrade_outlier_pdu: Forcing new room state thread 'conduwuit:worker' panicked at /home/nex/RustroverProjects/continuwuity/src/database/ser.rs:253:3: serializing string at the top-level; you can skip serialization instead stack backtrace: 0: __rustc::rust_begin_unwind at ./rustc/29483883eed69d5fb4db01964cdf2af4d86e9cb2/library/std/src/panicking.rs:697:5 1: core::panicking::panic_fmt at ./rustc/29483883eed69d5fb4db01964cdf2af4d86e9cb2/library/core/src/panicking.rs:75:14 2: <&mut conduwuit_database::ser::Serializer<W> as serde_core::ser::Serializer>::serialize_str at ./home/nex/RustroverProjects/continuwuity/src/database/ser.rs:253:3 3: <ruma_common::identifiers::user_id::UserId as serde_core::ser::Serialize>::serialize at ./home/nex/.cargo/git/checkouts/ruwuma-2d963c4f0b88555a/d188234/crates/ruma-common/src/identifiers/user_id.rs:23:48 4: serde_core::ser::impls::<impl serde_core::ser::Serialize for &T>::serialize at ./home/nex/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/serde_core-1.0.225/src/ser/impls.rs:472:26 5: conduwuit_database::ser::serialize at ./home/nex/RustroverProjects/continuwuity/src/database/ser.rs:35:6 6: conduwuit_database::map::insert::<impl conduwuit_database::map::Map>::raw_bput at ./home/nex/RustroverProjects/continuwuity/src/database/map/insert.rs:185:12 7: conduwuit_database::map::insert::<impl conduwuit_database::map::Map>::raw_put at ./home/nex/RustroverProjects/continuwuity/src/database/map/insert.rs:61:7 8: conduwuit_service::rooms::state_cache::update::<impl conduwuit_service::rooms::state_cache::Service>::mark_as_invited::{{closure}}::{{closure}} at ./home/nex/RustroverProjects/continuwuity/src/service/rooms/state_cache/update.rs:369:4 9: <tracing::instrument::Instrumented<T> as core::future::future::Future>::poll at ./home/nex/.cargo/git/checkouts/tracing-6f9516a190fc2e8c/1e64095/tracing/src/instrument.rs:321:15 10: conduwuit_service::rooms::state_cache::update::<impl conduwuit_service::rooms::state_cache::Service>::mark_as_invited::{{closure}} at ./home/nex/RustroverProjects/continuwuity/src/service/rooms/state_cache/update.rs:346:1 11: conduwuit_service::rooms::state_cache::update::<impl conduwuit_service::rooms::state_cache::Service>::update_membership::{{closure}}::{{closure}} at ./home/nex/RustroverProjects/continuwuity/src/service/rooms/state_cache/update.rs:140:6 12: <tracing::instrument::Instrumented<T> as core::future::future::Future>::poll at ./home/nex/.cargo/git/checkouts/tracing-6f9516a190fc2e8c/1e64095/tracing/src/instrument.rs:321:15 13: conduwuit_service::rooms::state_cache::update::<impl conduwuit_service::rooms::state_cache::Service>::update_membership::{{closure}} at ./home/nex/RustroverProjects/continuwuity/src/service/rooms/state_cache/update.rs:23:1 14: conduwuit_service::rooms::state::Service::force_state::{{closure}} at ./home/nex/RustroverProjects/continuwuity/src/service/rooms/state/mod.rs:144:8 15: conduwuit_service::rooms::event_handler::upgrade_outlier_pdu::<impl conduwuit_service::rooms::event_handler::Service>::upgrade_outlier_to_timeline_pdu::{{closure}} at ./home/nex/RustroverProjects/continuwuity/src/service/rooms/event_handler/upgrade_outlier_pdu.rs:249:5 16: conduwuit_service::rooms::event_handler::handle_prev_pdu::<impl conduwuit_service::rooms::event_handler::Service>::handle_prev_pdu::{{closure}}::{{closure}} at ./home/nex/RustroverProjects/continuwuity/src/service/rooms/event_handler/handle_prev_pdu.rs:81:4 17: <tracing::instrument::Instrumented<T> as core::future::future::Future>::poll at ./home/nex/.cargo/git/checkouts/tracing-6f9516a190fc2e8c/1e64095/tracing/src/instrument.rs:321:15 18: conduwuit_service::rooms::event_handler::handle_prev_pdu::<impl conduwuit_service::rooms::event_handler::Service>::handle_prev_pdu::{{closure}} at ./home/nex/RustroverProjects/continuwuity/src/service/rooms/event_handler/handle_prev_pdu.rs:13:1 19: <F as futures_core::future::TryFuture>::try_poll at ./home/nex/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/futures-core-0.3.31/src/future.rs:92:14 20: <futures_util::future::try_future::into_future::IntoFuture<Fut> as core::future::future::Future>::poll at ./home/nex/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/futures-util-0.3.31/src/future/try_future/into_future.rs:34:31 21: <futures_util::future::future::map::Map<Fut,F> as core::future::future::Future>::poll at ./home/nex/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/futures-util-0.3.31/src/future/future/map.rs:55:44 22: <futures_util::future::future::Inspect<Fut,F> as core::future::future::Future>::poll at ./home/nex/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/futures-util-0.3.31/src/lib.rs:86:35 23: <futures_util::future::try_future::InspectErr<Fut,F> as core::future::future::Future>::poll at ./home/nex/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/futures-util-0.3.31/src/lib.rs:86:35 24: <futures_util::future::future::map::Map<Fut,F> as core::future::future::Future>::poll at ./home/nex/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/futures-util-0.3.31/src/future/future/map.rs:55:44 25: <futures_util::future::future::Map<Fut,F> as core::future::future::Future>::poll at ./home/nex/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/futures-util-0.3.31/src/lib.rs:86:35 26: <F as futures_core::future::TryFuture>::try_poll at ./home/nex/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/futures-core-0.3.31/src/future.rs:92:14 27: <futures_util::stream::try_stream::try_for_each::TryForEach<St,Fut,F> as core::future::future::Future>::poll at ./home/nex/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/futures-util-0.3.31/src/stream/try_stream/try_for_each.rs:57:28 28: <core::pin::Pin<P> as core::future::future::Future>::poll at ./home/nex/.rustup/toolchains/1.89.0-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/core/src/future/future.rs:124:9 29: conduwuit_service::rooms::event_handler::handle_incoming_pdu::<impl conduwuit_service::rooms::event_handler::Service>::handle_incoming_pdu::{{closure}}::{{closure}} at ./home/nex/RustroverProjects/continuwuity/src/service/rooms/event_handler/handle_incoming_pdu.rs:177:4 30: <tracing::instrument::Instrumented<T> as core::future::future::Future>::poll at ./home/nex/.cargo/git/checkouts/tracing-6f9516a190fc2e8c/1e64095/tracing/src/instrument.rs:321:15 31: conduwuit_service::rooms::event_handler::handle_incoming_pdu::<impl conduwuit_service::rooms::event_handler::Service>::handle_incoming_pdu::{{closure}} at ./home/nex/RustroverProjects/continuwuity/src/service/rooms/event_handler/handle_incoming_pdu.rs:47:1 32: conduwuit_api::server::send::handle_room::{{closure}}::{{closure}}::{{closure}} at ./home/nex/RustroverProjects/continuwuity/src/api/server/send.rs:198:6 33: <F as futures_core::future::TryFuture>::try_poll at ./home/nex/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/futures-core-0.3.31/src/future.rs:92:14 34: <futures_util::stream::try_stream::and_then::AndThen<St,Fut,F> as futures_core::stream::Stream>::poll_next at ./home/nex/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/futures-util-0.3.31/src/stream/try_stream/and_then.rs:62:39 35: <S as futures_core::stream::TryStream>::try_poll_next at ./home/nex/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/futures-core-0.3.31/src/stream.rs:206:14 36: <futures_util::stream::try_stream::try_collect::TryCollect<St,C> as core::future::future::Future>::poll at ./home/nex/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/futures-util-0.3.31/src/stream/try_stream/try_collect.rs:46:47 37: conduwuit_api::server::send::handle_room::{{closure}} at ./home/nex/RustroverProjects/continuwuity/src/api/server/send.rs:210:4 38: <F as futures_core::future::TryFuture>::try_poll at ./home/nex/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/futures-core-0.3.31/src/future.rs:92:14 39: <futures_util::future::try_future::into_future::IntoFuture<Fut> as core::future::future::Future>::poll at ./home/nex/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/futures-util-0.3.31/src/future/try_future/into_future.rs:34:31 40: <futures_util::future::future::map::Map<Fut,F> as core::future::future::Future>::poll at ./home/nex/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/futures-util-0.3.31/src/future/future/map.rs:55:44 41: <futures_util::future::future::Map<Fut,F> as core::future::future::Future>::poll at ./home/nex/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/futures-util-0.3.31/src/lib.rs:86:35 42: <futures_util::future::try_future::MapOk<Fut,F> as core::future::future::Future>::poll at ./home/nex/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/futures-util-0.3.31/src/lib.rs:86:35 43: <F as futures_core::future::TryFuture>::try_poll at ./home/nex/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/futures-core-0.3.31/src/future.rs:92:14 44: <futures_util::future::try_future::into_future::IntoFuture<Fut> as core::future::future::Future>::poll at ./home/nex/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/futures-util-0.3.31/src/future/try_future/into_future.rs:34:31 45: <futures_util::future::future::map::Map<Fut,F> as core::future::future::Future>::poll at ./home/nex/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/futures-util-0.3.31/src/future/future/map.rs:55:44 46: <futures_util::future::future::Map<Fut,F> as core::future::future::Future>::poll at ./home/nex/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/futures-util-0.3.31/src/lib.rs:86:35 47: <futures_util::future::try_future::MapOk<Fut,F> as core::future::future::Future>::poll at ./home/nex/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/futures-util-0.3.31/src/lib.rs:86:35 48: <F as futures_core::future::TryFuture>::try_poll at ./home/nex/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/futures-core-0.3.31/src/future.rs:92:14 49: <futures_util::future::try_future::into_future::IntoFuture<Fut> as core::future::future::Future>::poll at ./home/nex/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/futures-util-0.3.31/src/future/try_future/into_future.rs:34:31 50: <futures_util::stream::futures_unordered::FuturesUnordered<Fut> as futures_core::stream::Stream>::poll_next at ./home/nex/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/futures-util-0.3.31/src/stream/futures_unordered/mod.rs:528:24 51: futures_util::stream::stream::StreamExt::poll_next_unpin at ./home/nex/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/futures-util-0.3.31/src/stream/stream/mod.rs:1638:24 52: <futures_util::stream::try_stream::try_buffer_unordered::TryBufferUnordered<St> as futures_core::stream::Stream>::poll_next at ./home/nex/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/futures-util-0.3.31/src/stream/try_stream/try_buffer_unordered.rs:62:38 53: <S as futures_core::stream::TryStream>::try_poll_next at ./home/nex/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/futures-core-0.3.31/src/stream.rs:206:14 54: <futures_util::stream::try_stream::try_flatten::TryFlatten<St> as futures_core::stream::Stream>::poll_next at ./home/nex/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/futures-util-0.3.31/src/stream/try_stream/try_flatten.rs:66:65 55: <S as futures_core::stream::TryStream>::try_poll_next at ./home/nex/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/futures-core-0.3.31/src/stream.rs:206:14 56: <futures_util::stream::try_stream::try_collect::TryCollect<St,C> as core::future::future::Future>::poll at ./home/nex/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/futures-util-0.3.31/src/stream/try_stream/try_collect.rs:46:47 57: <core::pin::Pin<P> as core::future::future::Future>::poll at ./home/nex/.rustup/toolchains/1.89.0-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/core/src/future/future.rs:124:9 58: conduwuit_api::server::send::handle::{{closure}} at ./home/nex/RustroverProjects/continuwuity/src/api/server/send.rs:164:4 59: conduwuit_api::server::send::send_transaction_message_route::{{closure}}::{{closure}} at ./home/nex/RustroverProjects/continuwuity/src/api/server/send.rs:107:86 60: <tracing::instrument::Instrumented<T> as core::future::future::Future>::poll at ./home/nex/.cargo/git/checkouts/tracing-6f9516a190fc2e8c/1e64095/tracing/src/instrument.rs:321:15 61: conduwuit_api::server::send::send_transaction_message_route::{{closure}} at ./home/nex/RustroverProjects/continuwuity/src/api/server/send.rs:49:1 62: <F as futures_core::future::TryFuture>::try_poll at ./home/nex/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/futures-core-0.3.31/src/future.rs:92:14 63: <futures_util::future::try_future::into_future::IntoFuture<Fut> as core::future::future::Future>::poll at ./home/nex/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/futures-util-0.3.31/src/future/try_future/into_future.rs:34:31 64: <futures_util::future::future::map::Map<Fut,F> as core::future::future::Future>::poll at ./home/nex/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/futures-util-0.3.31/src/future/future/map.rs:55:44 65: <futures_util::future::future::Map<Fut,F> as core::future::future::Future>::poll at ./home/nex/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/futures-util-0.3.31/src/lib.rs:86:35 66: <futures_util::future::try_future::MapOk<Fut,F> as core::future::future::Future>::poll at ./home/nex/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/futures-util-0.3.31/src/lib.rs:86:35 67: <F as axum::handler::Handler<(M,T1,T2,T3),S>>::call::{{closure}} at ./home/nex/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/axum-0.7.9/src/handler/mod.rs:241:53 68: <core::pin::Pin<P> as core::future::future::Future>::poll at ./home/nex/.rustup/toolchains/1.89.0-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/core/src/future/future.rs:124:9 69: <futures_util::future::future::map::Map<Fut,F> as core::future::future::Future>::poll at ./home/nex/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/futures-util-0.3.31/src/future/future/map.rs:55:44 70: <futures_util::future::future::Map<Fut,F> as core::future::future::Future>::poll at ./home/nex/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/futures-util-0.3.31/src/lib.rs:86:35 71: <axum::handler::future::IntoServiceFuture<F> as core::future::future::Future>::poll at ./home/nex/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/axum-0.7.9/src/macros.rs:42:39 72: <F as futures_core::future::TryFuture>::try_poll at ./home/nex/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/futures-core-0.3.31/src/future.rs:92:14 73: <futures_util::future::try_future::into_future::IntoFuture<Fut> as core::future::future::Future>::poll at ./home/nex/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/futures-util-0.3.31/src/future/try_future/into_future.rs:34:31 74: <futures_util::future::future::map::Map<Fut,F> as core::future::future::Future>::poll at ./home/nex/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/futures-util-0.3.31/src/future/future/map.rs:55:44 75: <futures_util::future::future::Map<Fut,F> as core::future::future::Future>::poll at ./home/nex/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/futures-util-0.3.31/src/lib.rs:86:35 76: <futures_util::future::try_future::MapOk<Fut,F> as core::future::future::Future>::poll at ./home/nex/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/futures-util-0.3.31/src/lib.rs:86:35 77: <tower::util::map_response::MapResponseFuture<F,N> as core::future::future::Future>::poll at ./home/nex/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/tower-0.5.2/src/macros.rs:38:38 78: <core::pin::Pin<P> as core::future::future::Future>::poll at ./home/nex/.rustup/toolchains/1.89.0-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/core/src/future/future.rs:124:9 79: <tower::util::oneshot::Oneshot<S,Req> as core::future::future::Future>::poll at ./home/nex/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/tower-0.5.2/src/util/oneshot.rs:97:42 80: <axum::routing::route::RouteFuture<E> as core::future::future::Future>::poll at ./home/nex/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/axum-0.7.9/src/routing/route.rs:182:68 81: <core::panic::unwind_safe::AssertUnwindSafe<F> as core::future::future::Future>::poll at ./home/nex/.rustup/toolchains/1.89.0-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/core/src/panic/unwind_safe.rs:297:9 82: <futures_util::future::future::catch_unwind::CatchUnwind<Fut> as core::future::future::Future>::poll::{{closure}} at ./home/nex/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/futures-util-0.3.31/src/future/future/catch_unwind.rs:37:44 83: <core::panic::unwind_safe::AssertUnwindSafe<F> as core::ops::function::FnOnce<()>>::call_once at ./home/nex/.rustup/toolchains/1.89.0-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/core/src/panic/unwind_safe.rs:272:9 84: std::panicking::catch_unwind::do_call at ./home/nex/.rustup/toolchains/1.89.0-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/std/src/panicking.rs:589:40 85: __rust_try 86: std::panicking::catch_unwind at ./home/nex/.rustup/toolchains/1.89.0-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/std/src/panicking.rs:552:19 87: std::panic::catch_unwind at ./home/nex/.rustup/toolchains/1.89.0-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/std/src/panic.rs:359:14 88: <futures_util::future::future::catch_unwind::CatchUnwind<Fut> as core::future::future::Future>::poll at ./home/nex/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/futures-util-0.3.31/src/future/future/catch_unwind.rs:37:9 89: <tower_http::catch_panic::ResponseFuture<F,T> as core::future::future::Future>::poll at ./home/nex/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/tower-http-0.6.6/src/catch_panic.rs:269:38 90: <tower_http::cors::ResponseFuture<F> as core::future::future::Future>::poll at ./home/nex/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/tower-http-0.6.6/src/cors/mod.rs:755:63 91: <tower_http::set_header::response::ResponseFuture<F,M> as core::future::future::Future>::poll at ./home/nex/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/tower-http-0.6.6/src/set_header/response.rs:294:42 92: <tower_http::set_header::response::ResponseFuture<F,M> as core::future::future::Future>::poll at ./home/nex/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/tower-http-0.6.6/src/set_header/response.rs:294:42 93: <tower_http::set_header::response::ResponseFuture<F,M> as core::future::future::Future>::poll at ./home/nex/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/tower-http-0.6.6/src/set_header/response.rs:294:42 note: Some details are omitted, run with `RUST_BACKTRACE=full` for a verbose backtrace. 2025-11-23T16:30:27.204561Z ERROR conduwuit_router::layers: serializing string at the top-level; you can skip serialization instead at src/router/layers.rs:190 on conduwuit:worker ThreadId(3) in conduwuit_router::layers::panic in conduwuit_router::layers::router with method=PUT path=/_matrix/federation/v1/send ```
Sign in to join this conversation.
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference
continuwuation/continuwuity#1079
No description provided.