From baf8b57b6db5083111d9fa3b9fbbd7e9e925622b Mon Sep 17 00:00:00 2001 From: Gabriel Kaszewski Date: Thu, 14 May 2026 20:16:00 +0200 Subject: [PATCH] fix(activitypub-base): strip leading @ from handle before WebFinger lookup --- crates/adapters/activitypub-base/src/service.rs | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/crates/adapters/activitypub-base/src/service.rs b/crates/adapters/activitypub-base/src/service.rs index 9de878b..857d942 100644 --- a/crates/adapters/activitypub-base/src/service.rs +++ b/crates/adapters/activitypub-base/src/service.rs @@ -1337,12 +1337,12 @@ impl domain::ports::FederationActionPort for ActivityPubService { handle: &str, ) -> Result { let data = self.federation_config.to_request_data(); - let actor: crate::actors::DbActor = - webfinger_resolve_actor(handle, &data) - .await - .map_err(|e: crate::error::Error| { - domain::errors::DomainError::ExternalService(e.to_string()) - })?; + let normalized = handle.trim_start_matches('@'); + let actor: crate::actors::DbActor = webfinger_resolve_actor(normalized, &data) + .await + .map_err(|e: crate::error::Error| { + domain::errors::DomainError::ExternalService(e.to_string()) + })?; Ok(domain::models::remote_actor::RemoteActor { url: actor.ap_id.to_string(), handle: actor.username.clone(),