Cannot follow Owncast streams #281

Closed
opened 2022-11-16 03:41:30 +00:00 by logomancer · 8 comments

My Akkoma instance can't follow Owncast streams when its social function is enabled; when this is attempted via the follow button on the Owncast stream page, the login page is blank and an error appears in the logs. I'm using Owncast 0.0.12 and Akkoma upstream at commit 3e0a5851e5, both via Docker containers.

Debug output:

soc-akkoma-1  | 03:26:01.577 request_id=$WEBFINGER_REQUEST [debug] GET /.well-known/webfinger
soc-akkoma-1  | 
soc-akkoma-1  | 03:26:01.578 request_id=$WEBFINGER_REQUEST [debug] Processing with Pleroma.Web.WebFinger.WebFingerController.webfinger/2
soc-akkoma-1  |   Parameters: %{"resource" => "acct:$USER@akkoma.domain.tld"}
soc-akkoma-1  |   Pipelines: [:well_known]
soc-akkoma-1  | 
soc-akkoma-1  | 03:26:01.584 [debug] QUERY OK source="users" db=2.7ms queue=1.8ms idle=1801.5ms
soc-akkoma-1  | SELECT u0."id", u0."bio", u0."raw_bio", u0."email", u0."name", u0."nickname", u0."password_hash", u0."keys", u0."public_key", u0."ap_id", u0."avatar", u0."local", u0."follower_address", u0."following_address", u0."featured_address", u0."tags", u0."last_refreshed_at", u0."last_digest_emailed_at", u0."banner",
 u0."background", u0."note_count", u0."follower_count", u0."following_count", u0."is_locked", u0."is_confirmed", u0."password_reset_pending", u0."is_approved", u0."registration_reason", u0."confirmation_token", u0."default_scope", u0."domain_blocks", u0."is_active", u0."no_rich_text", u0."ap_enabled", u0."is_moderator", u0.
"is_admin", u0."show_role", u0."mastofe_settings", u0."uri", u0."hide_followers_count", u0."hide_follows_count", u0."hide_followers", u0."hide_follows", u0."hide_favorites", u0."email_notifications", u0."mascot", u0."emoji", u0."pleroma_settings_store", u0."fields", u0."raw_fields", u0."is_discoverable", u0."invisible", u0.
"allow_following_move", u0."skip_thread_containment", u0."actor_type", u0."also_known_as", u0."inbox", u0."shared_inbox", u0."last_active_at", u0."disclose_client", u0."pinned_objects", u0."is_suggested", u0."last_status_at", u0."language", u0."notification_settings", u0."multi_factor_authentication_settings", u0."inserted_
at", u0."updated_at" FROM "users" AS u0 WHERE (u0."nickname" = $1) ["$USER"]
soc-akkoma-1  | 
soc-akkoma-1  | 03:26:01.584 request_id=$WEBFINGER_REQUEST [debug] Sent 200 in 6ms
soc-akkoma-1  | 
soc-akkoma-1  | 03:26:01.690 request_id=$FOLLOW_REQUEST [debug] GET /ostatus_subscribe
soc-akkoma-1  | 
soc-akkoma-1  | 03:26:01.690 request_id=$FOLLOW_REQUEST [debug] Processing with Pleroma.Web.TwitterAPI.RemoteFollowController.follow/2
soc-akkoma-1  |   Parameters: %{"acct" => "https://owncast.domain.tld/federation/user/feed"}
soc-akkoma-1  |   Pipelines: [:pleroma_html]
soc-akkoma-1  | 
soc-akkoma-1  | 03:26:01.692 request_id=$FOLLOW_REQUEST [debug] QUERY OK source="oauth_tokens" db=1.0ms queue=0.1ms idle=1913.3ms
soc-akkoma-1  | SELECT o0."id", o0."token", o0."refresh_token", o0."scopes", o0."valid_until", o0."user_id", o0."app_id", o0."inserted_at", o0."updated_at" FROM "oauth_tokens" AS o0 WHERE (o0."token" = $1) ["OAUTH_TOKEN"]
soc-akkoma-1  | 
soc-akkoma-1  | 03:26:01.692 request_id=$FOLLOW_REQUEST [debug] Fetching object https://owncast.domain.tld/federation/user/feed via AP
soc-akkoma-1  | 
soc-akkoma-1  | 03:26:01.988 request_id=$FOLLOW_REQUEST [debug] QUERY OK source="instances" db=6.0ms queue=0.5ms idle=1203.9ms
soc-akkoma-1  | SELECT TRUE FROM "instances" AS i0 WHERE ((i0."host" = $1) AND (i0."unreachable_since" <= $2)) ["owncast.domain.tld", ~N[2022-11-09 03:26:01.981375]]
soc-akkoma-1  | 
soc-akkoma-1  | 03:26:01.990 request_id=$FOLLOW_REQUEST [debug] QUERY OK source="users" db=1.0ms idle=1188.3ms
soc-akkoma-1  | SELECT u0."id", u0."bio", u0."raw_bio", u0."email", u0."name", u0."nickname", u0."password_hash", u0."keys", u0."public_key", u0."ap_id", u0."avatar", u0."local", u0."follower_address", u0."following_address", u0."featured_address", u0."tags", u0."last_refreshed_at", u0."last_digest_emailed_at", u0."banner",
 u0."background", u0."note_count", u0."follower_count", u0."following_count", u0."is_locked", u0."is_confirmed", u0."password_reset_pending", u0."is_approved", u0."registration_reason", u0."confirmation_token", u0."default_scope", u0."domain_blocks", u0."is_active", u0."no_rich_text", u0."ap_enabled", u0."is_moderator", u0.
"is_admin", u0."show_role", u0."mastofe_settings", u0."uri", u0."hide_followers_count", u0."hide_follows_count", u0."hide_followers", u0."hide_follows", u0."hide_favorites", u0."email_notifications", u0."mascot", u0."emoji", u0."pleroma_settings_store", u0."fields", u0."raw_fields", u0."is_discoverable", u0."invisible", u0.
"allow_following_move", u0."skip_thread_containment", u0."actor_type", u0."also_known_as", u0."inbox", u0."shared_inbox", u0."last_active_at", u0."disclose_client", u0."pinned_objects", u0."is_suggested", u0."last_status_at", u0."language", u0."notification_settings", u0."multi_factor_authentication_settings", u0."inserted_
at", u0."updated_at" FROM "users" AS u0 WHERE (u0."ap_id" = $1) ["https://owncast.domain.tld/federation/user/feed"]
soc-akkoma-1  | 
soc-akkoma-1  | 03:26:01.991 request_id=$FOLLOW_REQUEST [debug] QUERY OK source="users" db=1.4ms idle=406.3ms
soc-akkoma-1  | SELECT u0."id", u0."bio", u0."raw_bio", u0."email", u0."name", u0."nickname", u0."password_hash", u0."keys", u0."public_key", u0."ap_id", u0."avatar", u0."local", u0."follower_address", u0."following_address", u0."featured_address", u0."tags", u0."last_refreshed_at", u0."last_digest_emailed_at", u0."banner", u0."background", u0."note_count", u0."follower_count", u0."following_count", u0."is_locked", u0."is_confirmed", u0."password_reset_pending", u0."is_approved", u0."registration_reason", u0."confirmation_token", u0."default_scope", u0."domain_blocks", u0."is_active", u0."no_rich_text", u0."ap_enabled", u0."is_moderator", u0."is_admin", u0."show_role", u0."mastofe_settings", u0."uri", u0."hide_followers_count", u0."hide_follows_count", u0."hide_followers", u0."hide_follows", u0."hide_favorites", u0."email_notifications", u0."mascot", u0."emoji", u0."pleroma_settings_store", u0."fields", u0."raw_fields", u0."is_discoverable", u0."invisible", u0."allow_following_move", u0."skip_thread_containment", u0."actor_type", u0."also_known_as", u0."inbox", u0."shared_inbox", u0."last_active_at", u0."disclose_client", u0."pinned_objects", u0."is_suggested", u0."last_status_at", u0."language", u0."notification_settings", u0."multi_factor_authentication_settings", u0."inserted_at", u0."updated_at" FROM "users" AS u0 WHERE (u0."ap_id" = $1) ["https://owncast.domain.tld/federation/user/feed"]
soc-akkoma-1  | 
soc-akkoma-1  | 03:26:01.992 request_id=$FOLLOW_REQUEST [debug] Fetching object https://owncast.domain.tld/federation/user/feed via AP
soc-akkoma-1  | 
soc-akkoma-1  | 03:26:02.053 request_id=$FOLLOW_REQUEST [debug] QUERY OK source="instances" db=1.6ms queue=0.1ms idle=359.1ms
soc-akkoma-1  | SELECT TRUE FROM "instances" AS i0 WHERE ((i0."host" = $1) AND (i0."unreachable_since" <= $2)) ["owncast.domain.tld", ~N[2022-11-09 03:26:02.051212]]
soc-akkoma-1  | 
soc-akkoma-1  | 03:26:02.137 request_id=$FOLLOW_REQUEST [error] Internal server error: %FunctionClauseError{args: nil, arity: 1, clauses: nil, function: :"-object_to_user_data/2-fun-1-", kind: nil, module: Pleroma.Web.ActivityPub.ActivityPub}
soc-akkoma-1  | 
soc-akkoma-1  | 03:26:02.149 request_id=$FOLLOW_REQUEST [debug] Converted error :function_clause to 500 response
soc-akkoma-1  | 
soc-akkoma-1  | 03:26:02.160 [error] #PID<0.1516.0> running Pleroma.Web.Endpoint (connection #PID<0.1439.0>, stream id 5) terminated
soc-akkoma-1  | Server: akkoma.domain.tld:80 (http)
soc-akkoma-1  | Request: GET /ostatus_subscribe?acct=https://owncast.domain.tld/federation/user/feed
soc-akkoma-1  | ** (exit) an exception was raised:
soc-akkoma-1  |     ** (Protocol.UndefinedError) protocol Phoenix.HTML.Safe not implemented for %{errors: %{detail: "Internal server error"}} of type Map. This protocol is implemented for the following type(s): Atom, BitString, Date, DateTime, Decimal, Float, Integer, List, NaiveDateTime, Phoenix.HTML.Form, Phoenix.LiveComponent.CID, Phoenix.LiveView.Component, Phoenix.LiveView.Comprehension, Phoenix.LiveView.JS, Phoenix.LiveView.Rendered, Time, Tuple
soc-akkoma-1  |         (phoenix_html 3.2.0) lib/phoenix_html/safe.ex:1: Phoenix.HTML.Safe.impl_for!/1
soc-akkoma-1  |         (phoenix_html 3.2.0) lib/phoenix_html/safe.ex:15: Phoenix.HTML.Safe.to_iodata/1
soc-akkoma-1  |         (phoenix 1.6.11) lib/phoenix/controller.ex:772: Phoenix.Controller.render_and_send/4
soc-akkoma-1  |         (phoenix 1.6.11) lib/phoenix/endpoint/render_errors.ex:78: Phoenix.Endpoint.RenderErrors.instrument_render_and_send/5
soc-akkoma-1  |         (phoenix 1.6.11) lib/phoenix/endpoint/render_errors.ex:64: Phoenix.Endpoint.RenderErrors.__catch__/5
soc-akkoma-1  |         (phoenix 1.6.11) lib/phoenix/endpoint/cowboy2_handler.ex:54: Phoenix.Endpoint.Cowboy2Handler.init/4
soc-akkoma-1  |         (cowboy 2.9.0) /opt/akkoma/deps/cowboy/src/cowboy_handler.erl:37: :cowboy_handler.execute/2
soc-akkoma-1  |         (cowboy 2.9.0) /opt/akkoma/deps/cowboy/src/cowboy_stream_h.erl:306: :cowboy_stream_h.execute/3

Let me know if you need anything else.

My Akkoma instance can't follow Owncast streams when its social function is enabled; when this is attempted via the follow button on the Owncast stream page, the login page is blank and an error appears in the logs. I'm using Owncast 0.0.12 and Akkoma upstream at commit 3e0a5851e528135a04ca8f9ab59607ecc3ba42d9, both via Docker containers. Debug output: ``` soc-akkoma-1 | 03:26:01.577 request_id=$WEBFINGER_REQUEST [debug] GET /.well-known/webfinger soc-akkoma-1 | soc-akkoma-1 | 03:26:01.578 request_id=$WEBFINGER_REQUEST [debug] Processing with Pleroma.Web.WebFinger.WebFingerController.webfinger/2 soc-akkoma-1 | Parameters: %{"resource" => "acct:$USER@akkoma.domain.tld"} soc-akkoma-1 | Pipelines: [:well_known] soc-akkoma-1 | soc-akkoma-1 | 03:26:01.584 [debug] QUERY OK source="users" db=2.7ms queue=1.8ms idle=1801.5ms soc-akkoma-1 | SELECT u0."id", u0."bio", u0."raw_bio", u0."email", u0."name", u0."nickname", u0."password_hash", u0."keys", u0."public_key", u0."ap_id", u0."avatar", u0."local", u0."follower_address", u0."following_address", u0."featured_address", u0."tags", u0."last_refreshed_at", u0."last_digest_emailed_at", u0."banner", u0."background", u0."note_count", u0."follower_count", u0."following_count", u0."is_locked", u0."is_confirmed", u0."password_reset_pending", u0."is_approved", u0."registration_reason", u0."confirmation_token", u0."default_scope", u0."domain_blocks", u0."is_active", u0."no_rich_text", u0."ap_enabled", u0."is_moderator", u0. "is_admin", u0."show_role", u0."mastofe_settings", u0."uri", u0."hide_followers_count", u0."hide_follows_count", u0."hide_followers", u0."hide_follows", u0."hide_favorites", u0."email_notifications", u0."mascot", u0."emoji", u0."pleroma_settings_store", u0."fields", u0."raw_fields", u0."is_discoverable", u0."invisible", u0. "allow_following_move", u0."skip_thread_containment", u0."actor_type", u0."also_known_as", u0."inbox", u0."shared_inbox", u0."last_active_at", u0."disclose_client", u0."pinned_objects", u0."is_suggested", u0."last_status_at", u0."language", u0."notification_settings", u0."multi_factor_authentication_settings", u0."inserted_ at", u0."updated_at" FROM "users" AS u0 WHERE (u0."nickname" = $1) ["$USER"] soc-akkoma-1 | soc-akkoma-1 | 03:26:01.584 request_id=$WEBFINGER_REQUEST [debug] Sent 200 in 6ms soc-akkoma-1 | soc-akkoma-1 | 03:26:01.690 request_id=$FOLLOW_REQUEST [debug] GET /ostatus_subscribe soc-akkoma-1 | soc-akkoma-1 | 03:26:01.690 request_id=$FOLLOW_REQUEST [debug] Processing with Pleroma.Web.TwitterAPI.RemoteFollowController.follow/2 soc-akkoma-1 | Parameters: %{"acct" => "https://owncast.domain.tld/federation/user/feed"} soc-akkoma-1 | Pipelines: [:pleroma_html] soc-akkoma-1 | soc-akkoma-1 | 03:26:01.692 request_id=$FOLLOW_REQUEST [debug] QUERY OK source="oauth_tokens" db=1.0ms queue=0.1ms idle=1913.3ms soc-akkoma-1 | SELECT o0."id", o0."token", o0."refresh_token", o0."scopes", o0."valid_until", o0."user_id", o0."app_id", o0."inserted_at", o0."updated_at" FROM "oauth_tokens" AS o0 WHERE (o0."token" = $1) ["OAUTH_TOKEN"] soc-akkoma-1 | soc-akkoma-1 | 03:26:01.692 request_id=$FOLLOW_REQUEST [debug] Fetching object https://owncast.domain.tld/federation/user/feed via AP soc-akkoma-1 | soc-akkoma-1 | 03:26:01.988 request_id=$FOLLOW_REQUEST [debug] QUERY OK source="instances" db=6.0ms queue=0.5ms idle=1203.9ms soc-akkoma-1 | SELECT TRUE FROM "instances" AS i0 WHERE ((i0."host" = $1) AND (i0."unreachable_since" <= $2)) ["owncast.domain.tld", ~N[2022-11-09 03:26:01.981375]] soc-akkoma-1 | soc-akkoma-1 | 03:26:01.990 request_id=$FOLLOW_REQUEST [debug] QUERY OK source="users" db=1.0ms idle=1188.3ms soc-akkoma-1 | SELECT u0."id", u0."bio", u0."raw_bio", u0."email", u0."name", u0."nickname", u0."password_hash", u0."keys", u0."public_key", u0."ap_id", u0."avatar", u0."local", u0."follower_address", u0."following_address", u0."featured_address", u0."tags", u0."last_refreshed_at", u0."last_digest_emailed_at", u0."banner", u0."background", u0."note_count", u0."follower_count", u0."following_count", u0."is_locked", u0."is_confirmed", u0."password_reset_pending", u0."is_approved", u0."registration_reason", u0."confirmation_token", u0."default_scope", u0."domain_blocks", u0."is_active", u0."no_rich_text", u0."ap_enabled", u0."is_moderator", u0. "is_admin", u0."show_role", u0."mastofe_settings", u0."uri", u0."hide_followers_count", u0."hide_follows_count", u0."hide_followers", u0."hide_follows", u0."hide_favorites", u0."email_notifications", u0."mascot", u0."emoji", u0."pleroma_settings_store", u0."fields", u0."raw_fields", u0."is_discoverable", u0."invisible", u0. "allow_following_move", u0."skip_thread_containment", u0."actor_type", u0."also_known_as", u0."inbox", u0."shared_inbox", u0."last_active_at", u0."disclose_client", u0."pinned_objects", u0."is_suggested", u0."last_status_at", u0."language", u0."notification_settings", u0."multi_factor_authentication_settings", u0."inserted_ at", u0."updated_at" FROM "users" AS u0 WHERE (u0."ap_id" = $1) ["https://owncast.domain.tld/federation/user/feed"] soc-akkoma-1 | soc-akkoma-1 | 03:26:01.991 request_id=$FOLLOW_REQUEST [debug] QUERY OK source="users" db=1.4ms idle=406.3ms soc-akkoma-1 | SELECT u0."id", u0."bio", u0."raw_bio", u0."email", u0."name", u0."nickname", u0."password_hash", u0."keys", u0."public_key", u0."ap_id", u0."avatar", u0."local", u0."follower_address", u0."following_address", u0."featured_address", u0."tags", u0."last_refreshed_at", u0."last_digest_emailed_at", u0."banner", u0."background", u0."note_count", u0."follower_count", u0."following_count", u0."is_locked", u0."is_confirmed", u0."password_reset_pending", u0."is_approved", u0."registration_reason", u0."confirmation_token", u0."default_scope", u0."domain_blocks", u0."is_active", u0."no_rich_text", u0."ap_enabled", u0."is_moderator", u0."is_admin", u0."show_role", u0."mastofe_settings", u0."uri", u0."hide_followers_count", u0."hide_follows_count", u0."hide_followers", u0."hide_follows", u0."hide_favorites", u0."email_notifications", u0."mascot", u0."emoji", u0."pleroma_settings_store", u0."fields", u0."raw_fields", u0."is_discoverable", u0."invisible", u0."allow_following_move", u0."skip_thread_containment", u0."actor_type", u0."also_known_as", u0."inbox", u0."shared_inbox", u0."last_active_at", u0."disclose_client", u0."pinned_objects", u0."is_suggested", u0."last_status_at", u0."language", u0."notification_settings", u0."multi_factor_authentication_settings", u0."inserted_at", u0."updated_at" FROM "users" AS u0 WHERE (u0."ap_id" = $1) ["https://owncast.domain.tld/federation/user/feed"] soc-akkoma-1 | soc-akkoma-1 | 03:26:01.992 request_id=$FOLLOW_REQUEST [debug] Fetching object https://owncast.domain.tld/federation/user/feed via AP soc-akkoma-1 | soc-akkoma-1 | 03:26:02.053 request_id=$FOLLOW_REQUEST [debug] QUERY OK source="instances" db=1.6ms queue=0.1ms idle=359.1ms soc-akkoma-1 | SELECT TRUE FROM "instances" AS i0 WHERE ((i0."host" = $1) AND (i0."unreachable_since" <= $2)) ["owncast.domain.tld", ~N[2022-11-09 03:26:02.051212]] soc-akkoma-1 | soc-akkoma-1 | 03:26:02.137 request_id=$FOLLOW_REQUEST [error] Internal server error: %FunctionClauseError{args: nil, arity: 1, clauses: nil, function: :"-object_to_user_data/2-fun-1-", kind: nil, module: Pleroma.Web.ActivityPub.ActivityPub} soc-akkoma-1 | soc-akkoma-1 | 03:26:02.149 request_id=$FOLLOW_REQUEST [debug] Converted error :function_clause to 500 response soc-akkoma-1 | soc-akkoma-1 | 03:26:02.160 [error] #PID<0.1516.0> running Pleroma.Web.Endpoint (connection #PID<0.1439.0>, stream id 5) terminated soc-akkoma-1 | Server: akkoma.domain.tld:80 (http) soc-akkoma-1 | Request: GET /ostatus_subscribe?acct=https://owncast.domain.tld/federation/user/feed soc-akkoma-1 | ** (exit) an exception was raised: soc-akkoma-1 | ** (Protocol.UndefinedError) protocol Phoenix.HTML.Safe not implemented for %{errors: %{detail: "Internal server error"}} of type Map. This protocol is implemented for the following type(s): Atom, BitString, Date, DateTime, Decimal, Float, Integer, List, NaiveDateTime, Phoenix.HTML.Form, Phoenix.LiveComponent.CID, Phoenix.LiveView.Component, Phoenix.LiveView.Comprehension, Phoenix.LiveView.JS, Phoenix.LiveView.Rendered, Time, Tuple soc-akkoma-1 | (phoenix_html 3.2.0) lib/phoenix_html/safe.ex:1: Phoenix.HTML.Safe.impl_for!/1 soc-akkoma-1 | (phoenix_html 3.2.0) lib/phoenix_html/safe.ex:15: Phoenix.HTML.Safe.to_iodata/1 soc-akkoma-1 | (phoenix 1.6.11) lib/phoenix/controller.ex:772: Phoenix.Controller.render_and_send/4 soc-akkoma-1 | (phoenix 1.6.11) lib/phoenix/endpoint/render_errors.ex:78: Phoenix.Endpoint.RenderErrors.instrument_render_and_send/5 soc-akkoma-1 | (phoenix 1.6.11) lib/phoenix/endpoint/render_errors.ex:64: Phoenix.Endpoint.RenderErrors.__catch__/5 soc-akkoma-1 | (phoenix 1.6.11) lib/phoenix/endpoint/cowboy2_handler.ex:54: Phoenix.Endpoint.Cowboy2Handler.init/4 soc-akkoma-1 | (cowboy 2.9.0) /opt/akkoma/deps/cowboy/src/cowboy_handler.erl:37: :cowboy_handler.execute/2 soc-akkoma-1 | (cowboy 2.9.0) /opt/akkoma/deps/cowboy/src/cowboy_stream_h.erl:306: :cowboy_stream_h.execute/3 ``` Let me know if you need anything else.
Contributor

Hi, it should work.. at least on my install. Maybe its owncast?
Can you try it on this instance and see if that works -> video.mezzo.moe

Hi, it should work.. at least on my install. Maybe its owncast? Can you try it on this instance and see if that works -> video.mezzo.moe
Author

That worked, but I'm not sure what's different. I'm running Owncast in a docker container, using Caddy with the recommended settings from the documentation.

That worked, but I'm not sure what's different. I'm running Owncast in a docker container, using Caddy with the recommended settings from the documentation.
Contributor

You sure? this url seems entirly wrong

GET /ostatus_subscribe?acct=https://owncast.domain.tld/federation/user/feed

for me it looks like, that your owncast instance delivers the wrong source url

You sure? this url seems entirly wrong ``` GET /ostatus_subscribe?acct=https://owncast.domain.tld/federation/user/feed ``` for me it looks like, that your owncast instance delivers the wrong source url
Author

video.mezzo.moe delivers the same URL format (https://akkoma.domain.tld/ostatus_subscribe?acct=https://video.mezzo.moe/federation/user/notify), and follows the same function call path. Here's a log of that request:

soc-akkoma-1  | 07:30:41.789 request_id=$WEBFINGER_REQUEST [debug] GET /.well-known/webfinger
soc-akkoma-1  | 
soc-akkoma-1  | 07:30:41.790 request_id=$WEBFINGER_REQUEST [debug] Processing with Pleroma.Web.WebFinger.WebFingerController.webfinger/2
soc-akkoma-1  |   Parameters: %{"resource" => "acct:$USER@akkoma.domain.tld"}
soc-akkoma-1  |   Pipelines: [:well_known]
soc-akkoma-1  | 
soc-akkoma-1  | 07:30:41.791 request_id=$WEBFINGER_REQUEST [debug] Sent 200 in 1ms
soc-akkoma-1  | 
soc-akkoma-1  | 07:30:41.989 request_id=$FOLLOW_REQUEST [debug] GET /ostatus_subscribe
soc-akkoma-1  | 
soc-akkoma-1  | 07:30:41.989 request_id=$FOLLOW_REQUEST [debug] Processing with Pleroma.Web.TwitterAPI.RemoteFollowController.follow/2
soc-akkoma-1  |   Parameters: %{"acct" => "https://video.mezzo.moe/federation/user/notify"}
soc-akkoma-1  |   Pipelines: [:pleroma_html]
soc-akkoma-1  | 
soc-akkoma-1  | 07:30:41.994 request_id=$FOLLOW_REQUEST [debug] QUERY OK source="oauth_tokens" db=3.6ms queue=0.1ms idle=1082.8ms
soc-akkoma-1  | SELECT o0."id", o0."token", o0."refresh_token", o0."scopes", o0."valid_until", o0."user_id", o0."app_id", o0."inserted_at", o0."updated_at" FROM "oauth_tokens" AS o0 WHERE (o0."token" = $1) ["$OAUTH_TOKEN"]
soc-akkoma-1  | 
soc-akkoma-1  | 07:30:41.994 request_id=$FOLLOW_REQUEST [debug] Fetching object https://video.mezzo.moe/federation/user/notify via AP
soc-akkoma-1  | 
soc-akkoma-1  | 07:30:42.603 request_id=$FOLLOW_REQUEST [debug] QUERY OK source="instances" db=0.8ms idle=695.1ms
soc-akkoma-1  | SELECT TRUE FROM "instances" AS i0 WHERE ((i0."host" = $1) AND (i0."unreachable_since" <= $2)) ["video.mezzo.moe", ~N[2022-11-22 07:30:42.602331]]
soc-akkoma-1  | 
soc-akkoma-1  | 07:30:42.604 request_id=$FOLLOW_REQUEST [debug] Sent 200 in 614ms

I tried it with another video site, and got the same URL format (https://akkoma.domain.tld/ostatus_subscribe?acct=https://live.hatnix.net/federation/user/hatnix) and log output:

soc-akkoma-1  | 07:39:20.232 request_id=$WEBFINGER_REQUEST [debug] GET /.well-known/webfinger
soc-akkoma-1  | 
soc-akkoma-1  | 07:39:20.232 request_id=$WEBFINGER_REQUEST [debug] Processing with Pleroma.Web.WebFinger.WebFingerController.webfinger/2
soc-akkoma-1  |   Parameters: %{"resource" => "acct:$USER@akkoma.domain.tld"}
soc-akkoma-1  |   Pipelines: [:well_known]
soc-akkoma-1  | 
soc-akkoma-1  | 07:39:20.233 request_id=$WEBFINGER_REQUEST [debug] Sent 200 in 836µs
soc-akkoma-1  | 
soc-akkoma-1  | 07:39:20.402 request_id=$FOLLOW_REQUEST [debug] GET /ostatus_subscribe
soc-akkoma-1  | 
soc-akkoma-1  | 07:39:20.403 request_id=$FOLLOW_REQUEST [debug] Processing with Pleroma.Web.TwitterAPI.RemoteFollowController.follow/2
soc-akkoma-1  |   Parameters: %{"acct" => "https://live.hatnix.net/federation/user/hatnix"}
soc-akkoma-1  |   Pipelines: [:pleroma_html]
soc-akkoma-1  | 
soc-akkoma-1  | 07:39:20.407 request_id=$FOLLOW_REQUEST [debug] QUERY OK source="oauth_tokens" db=3.7ms queue=0.1ms idle=1496.3ms
soc-akkoma-1  | SELECT o0."id", o0."token", o0."refresh_token", o0."scopes", o0."valid_until", o0."user_id", o0."app_id", o0."inserted_at", o0."updated_at" FROM "oauth_tokens" AS o0 WHERE (o0."token" = $1) ["$OAUTH_TOKEN"]
soc-akkoma-1  | 
soc-akkoma-1  | 07:39:20.407 request_id=$FOLLOW_REQUEST [debug] Fetching object https://live.hatnix.net/federation/user/hatnix via AP
soc-akkoma-1  | 
soc-akkoma-1  | 07:39:20.549 request_id=$FOLLOW_REQUEST [debug] QUERY OK source="instances" db=1.1ms idle=1640.9ms
soc-akkoma-1  | SELECT TRUE FROM "instances" AS i0 WHERE ((i0."host" = $1) AND (i0."unreachable_since" <= $2)) ["live.hatnix.net", ~N[2022-11-22 07:39:20.548166]]
soc-akkoma-1  | 
soc-akkoma-1  | 07:39:20.550 request_id=$FOLLOW_REQUEST [debug] Sent 200 in 147ms

I may be wrong, but this doesn't look like Owncast being the issue. For some reason, a follow request sent to the same domain (but different subdomain) seems to behave differently than follow requests sent to a different domain.

video.mezzo.moe delivers the same URL format (https://akkoma.domain.tld/ostatus_subscribe?acct=https://video.mezzo.moe/federation/user/notify), and follows the same function call path. Here's a log of that request: ``` soc-akkoma-1 | 07:30:41.789 request_id=$WEBFINGER_REQUEST [debug] GET /.well-known/webfinger soc-akkoma-1 | soc-akkoma-1 | 07:30:41.790 request_id=$WEBFINGER_REQUEST [debug] Processing with Pleroma.Web.WebFinger.WebFingerController.webfinger/2 soc-akkoma-1 | Parameters: %{"resource" => "acct:$USER@akkoma.domain.tld"} soc-akkoma-1 | Pipelines: [:well_known] soc-akkoma-1 | soc-akkoma-1 | 07:30:41.791 request_id=$WEBFINGER_REQUEST [debug] Sent 200 in 1ms soc-akkoma-1 | soc-akkoma-1 | 07:30:41.989 request_id=$FOLLOW_REQUEST [debug] GET /ostatus_subscribe soc-akkoma-1 | soc-akkoma-1 | 07:30:41.989 request_id=$FOLLOW_REQUEST [debug] Processing with Pleroma.Web.TwitterAPI.RemoteFollowController.follow/2 soc-akkoma-1 | Parameters: %{"acct" => "https://video.mezzo.moe/federation/user/notify"} soc-akkoma-1 | Pipelines: [:pleroma_html] soc-akkoma-1 | soc-akkoma-1 | 07:30:41.994 request_id=$FOLLOW_REQUEST [debug] QUERY OK source="oauth_tokens" db=3.6ms queue=0.1ms idle=1082.8ms soc-akkoma-1 | SELECT o0."id", o0."token", o0."refresh_token", o0."scopes", o0."valid_until", o0."user_id", o0."app_id", o0."inserted_at", o0."updated_at" FROM "oauth_tokens" AS o0 WHERE (o0."token" = $1) ["$OAUTH_TOKEN"] soc-akkoma-1 | soc-akkoma-1 | 07:30:41.994 request_id=$FOLLOW_REQUEST [debug] Fetching object https://video.mezzo.moe/federation/user/notify via AP soc-akkoma-1 | soc-akkoma-1 | 07:30:42.603 request_id=$FOLLOW_REQUEST [debug] QUERY OK source="instances" db=0.8ms idle=695.1ms soc-akkoma-1 | SELECT TRUE FROM "instances" AS i0 WHERE ((i0."host" = $1) AND (i0."unreachable_since" <= $2)) ["video.mezzo.moe", ~N[2022-11-22 07:30:42.602331]] soc-akkoma-1 | soc-akkoma-1 | 07:30:42.604 request_id=$FOLLOW_REQUEST [debug] Sent 200 in 614ms ``` I tried it with another video site, and got the same URL format (https://akkoma.domain.tld/ostatus_subscribe?acct=https://live.hatnix.net/federation/user/hatnix) and log output: ``` soc-akkoma-1 | 07:39:20.232 request_id=$WEBFINGER_REQUEST [debug] GET /.well-known/webfinger soc-akkoma-1 | soc-akkoma-1 | 07:39:20.232 request_id=$WEBFINGER_REQUEST [debug] Processing with Pleroma.Web.WebFinger.WebFingerController.webfinger/2 soc-akkoma-1 | Parameters: %{"resource" => "acct:$USER@akkoma.domain.tld"} soc-akkoma-1 | Pipelines: [:well_known] soc-akkoma-1 | soc-akkoma-1 | 07:39:20.233 request_id=$WEBFINGER_REQUEST [debug] Sent 200 in 836µs soc-akkoma-1 | soc-akkoma-1 | 07:39:20.402 request_id=$FOLLOW_REQUEST [debug] GET /ostatus_subscribe soc-akkoma-1 | soc-akkoma-1 | 07:39:20.403 request_id=$FOLLOW_REQUEST [debug] Processing with Pleroma.Web.TwitterAPI.RemoteFollowController.follow/2 soc-akkoma-1 | Parameters: %{"acct" => "https://live.hatnix.net/federation/user/hatnix"} soc-akkoma-1 | Pipelines: [:pleroma_html] soc-akkoma-1 | soc-akkoma-1 | 07:39:20.407 request_id=$FOLLOW_REQUEST [debug] QUERY OK source="oauth_tokens" db=3.7ms queue=0.1ms idle=1496.3ms soc-akkoma-1 | SELECT o0."id", o0."token", o0."refresh_token", o0."scopes", o0."valid_until", o0."user_id", o0."app_id", o0."inserted_at", o0."updated_at" FROM "oauth_tokens" AS o0 WHERE (o0."token" = $1) ["$OAUTH_TOKEN"] soc-akkoma-1 | soc-akkoma-1 | 07:39:20.407 request_id=$FOLLOW_REQUEST [debug] Fetching object https://live.hatnix.net/federation/user/hatnix via AP soc-akkoma-1 | soc-akkoma-1 | 07:39:20.549 request_id=$FOLLOW_REQUEST [debug] QUERY OK source="instances" db=1.1ms idle=1640.9ms soc-akkoma-1 | SELECT TRUE FROM "instances" AS i0 WHERE ((i0."host" = $1) AND (i0."unreachable_since" <= $2)) ["live.hatnix.net", ~N[2022-11-22 07:39:20.548166]] soc-akkoma-1 | soc-akkoma-1 | 07:39:20.550 request_id=$FOLLOW_REQUEST [debug] Sent 200 in 147ms ``` I may be wrong, but this doesn't look like Owncast being the issue. For some reason, a follow request sent to the same domain (but different subdomain) seems to behave differently than follow requests sent to a different domain.
Contributor

I don't mean the url format.. i mean the domain itself:
Your Owncast Domain:
https://owncast.domain.tld

Working Owncast Domains:
https://live.hatnix.net
https://video.mezzo.moe/

Your Owncast domain doesnt seem to be correct.. thats what i wanted to say

I don't mean the url format.. i mean the domain itself: Your Owncast Domain: https://owncast.domain.tld Working Owncast Domains: https://live.hatnix.net https://video.mezzo.moe/ Your Owncast domain doesnt seem to be correct.. thats what i wanted to say
Author

I sanitized all my personally identifying information in those logs. The URLs I replaced with owncast.domain.tld and akkoma.domain.tld point to valid Owncast and Akkoma instances. If it's necessary, I can tell you what instances I run.

I sanitized all my personally identifying information in those logs. The URLs I replaced with owncast.domain.tld and akkoma.domain.tld point to valid Owncast and Akkoma instances. If it's necessary, I can tell you what instances I run.
Contributor

Okay, than i'm out of ideas.. maybe someone else, who knows more internal stuff can help you here ^^v

Okay, than i'm out of ideas.. maybe someone else, who knows more internal stuff can help you here ^^v

I am able to follow mine and other owncasts from my akkoma account just fine, but neither my owncast nor akkoma are in docker. Perhaps there's something going on in there?

I am able to follow mine and other owncasts from my akkoma account just fine, but neither my owncast nor akkoma are in docker. Perhaps there's something going on in there?
Sign in to join this conversation.
No Milestone
No project
No Assignees
3 Participants
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: AkkomaGang/akkoma#281
No description provided.