[ActivityPub] Faire fonctionner chactivityserver

Le problème exposé dans ce sujet a été résolu.

Bonjour,

J’essaye depuis ce soir de mettre en place une instance de Cha-cu.it, un projet d'@AmarOk.
Je n’ai pas eu de problème particulier si ce n’est avec la fonctionnalité de suivi d’ActivityPub. J’aimerais qu’on puisse suivre mes recettes depuis mastodon par exemple.

Je suis loin d’être un expert d’ActivityPub mais dans ma conception des choses:

  • Lorsque l’on visite: https://mastodon.xyz/@chef@cha-cu.it un WebFinger est fait sur l’instance cha-cu.it afin d’avoir plus d’information sur l’utilisateur chef. La réponse est une URL vers le profile de chef. (un JRD avec avec une URL)
  • Le serveur requête le profil utilisateur et les transmets comme sa propre réponse. Ou transmets l’URL et le client fait lui même la requête.

Or je n’ai même pas la première étape. C’est-à-dire que visiter https://mastodon.xyz/@ache@re7.ache.one ne semble pas déclencher de WebFinger sur mon instance re7.ache.one.

Pourtant le webfinger est mis en place (grâce à chactivityserver):

$ httpx "https://re7.ache.one/.well-known/webfinger?resource=acct:ache@re7.ache.one"
HTTP/1.1 200 OK
Server: nginx/1.24.0
Date: Tue, 19 Mar 2024 22:16:06 GMT
Content-Type: application/json
Transfer-Encoding: chunked
Connection: keep-alive
Vary: Accept-Encoding
Content-Encoding: br

{
    "aliases": [
        "https://re7.ache.one/recettes/"
    ],
    "links": [
        {
            "href": "https://re7.ache.one/recettes",
            "rel": "http://webfinger.net/rel/profile-page",
            "type": "text/html"
        },
        {
            "href": "https://re7.ache.one/users/ache",
            "rel": "self",
            "type": "application/activity+json"
        }
    ],
    "subject": "acct:ache@re7.ache.one"
}

Il y a-t-il une condition pour que le serveur effectue un WebFinger ?

Je vois bien que mastodon.xyz effectue un GET sur https://mastodon.xyz/api/v1/accounts/lookup?acct=ache%40re7.ache.one. Et que cette réponse donne :

{"error":"Record not found"}

Mais comment peut-il dire qu’il ne m’a pas trouvé s’il ne m’a même pas chercher ? Je vois dans la documentation que le lookup évite la requête WebFinger mais pourquoi ? Et comment ? Sur quoi se base-t-il si ce n’est pas WebFinger pour dire que j’existe ou pas ?

Quickly lookup a username to see if it is available, skipping WebFinger resolution.

+0 -0

Merci !

Je lance en RUST_LOG en debug même et j’ai ça quand je fais une requête à la main:

 INFO 2024-03-20T19:08:28Z: chactivityserver: Launching server on: 0.0.0.0:8080
 INFO 2024-03-20T19:08:28Z: actix_server::builder: starting 16 workers
 INFO 2024-03-20T19:08:28Z: actix_server::server: Actix runtime found; starting in Actix runtime
GET WebFinger request: acct:ache@re7.ache.one
 INFO 2024-03-20T19:08:36Z: chactivityserver::server: GET WebFinger request: acct:ache@re7.ache.one

J’obtiens la ligne avec:

$ curl 'https://re7.ache.one/.well-known/webfinger?resource=acct:ache@re7.ache.one'

{"aliases":["https://re7.ache.one/recettes/"],"links":[{"href":"https://re7.ache.one/recettes","rel":"http://webfinger.net/rel/profile-page","type":"text/html"},{"href":"https://re7.ache.one/users/ache","rel":"self","type":"application/activity+json"}],"subject":"acct:ache@re7.ache.one"}⏎
$ 

Mais rien qui s’affiche quand je charge depuis mastodon.xyz.

Dans mon config.json j’ai ça:

{
    "bind_address": "0.0.0.0:8080",
    "domain": "re7.ache.one",
    "user": "ache",
    "preferred_name": "ache",
    "profile": "recettes",
    "avatar": "logo.png",
    "banner": "chactivityserver/profile.jpg",
    "private_key": ".keys/privkey.pem",
    "public_key": ".keys/pubkey.pem",
    "description": "Un site de recettes de cordon rouge ! re7.ache.one est un petit site de partage de recettes en tout genre. Les recettes sont en grande partie réalisées sous la supervision de Rouge, le renard.",
    "cache_dir": ".cache",
    "output_dir": "../content/chadiverse",
    "input_dir": "../content/recettes",
    "image_dir": "../static/img/",
    "static_image_dir": "img/",
    "manually_approve_followers": false,
    "discoverable": true,
    "license": "CC-0",
    "tags": ["cuisine", "recette", "mastocats", "mastofox"],
    "auto_follow_back": true,
    "instances_list": "../instances.txt",
    "block_list": "../block.txt",
    "manual_follow_list": "../manual_follow.txt"
}

Dans mes logs nginx j’ai bien:

XXX.9.XXX.XXX - - [20/Mar/2024:20:06:47 +0100] "GET /.well-known/webfinger?resource=acct:ache@re7.ache.one HTTP/2.0" 200 288 "-" "curl/8.6.0"
XXX.9.XXX.XXX - - [20/Mar/2024:20:08:36 +0100] "GET /.well-known/webfinger?resource=acct:ache@re7.ache.one HTTP/2.0" 200 288 "-" "curl/8.6.0"

Mais rien qui concerne le chargement de https://fosstodon.org/@ache@re7.ache.one par exemple. :(
Ces deux lignes ont pour user-agent curl dont ce sont juste mes tests à moi.

Je ne suis pas bien sûr de ce qu’il faut mettre dans instances.txt ou manual_follow.txt.

Pour l’instant j’ai ça:

$ cat ../instances.txt
mastodon.xyz
mastodon.social
framapiaf.org
$ cat ../manual_follow.txt
https://cha-cu.it/users/chef
https://mastodon.xyz/users/ache

Ma config nginx:

server {
  # Proxy to redirect to HTTPS
  server_name re7.ache.one;

  access_log /var/log/nginx/re7.ache.one.acces.log combined;
  error_log  /var/log/nginx/re7.ache.one.error.log error;

  listen [::]:80;
  listen 80;
  root /srv/re7/public;

  # location /.well-known/acme-challenge/ {
  #    try_files $uri $uri/ =404;
  # }

  location / {
    return 301 https://$host/;
  }
}

server {
  # Main server
  server_name re7.ache.one;
  access_log /var/log/nginx/re7.ache.one.acces.log combined;
  error_log  /var/log/nginx/re7.ache.one.error.log error;
  error_page 404 /404.html;
  error_page 501 /403.html;
  error_page 403 /403.html;
  root /srv/re7/public;
  index index.html;
  brotli on;
  brotli_comp_level 6;
  brotli_types *;


  # always here apply the add_header instruction to generated webpages which are not include otherwise
  # add_header Strict-Transport-Security "max-age=31536000" always;
  # This instrucion disable MIME detection by the browser
  # add_header X-Content-Type-Options nosniff;

  # add_header Content-Security-Policy "default-src 'self' blob: https://re7.ache.one; script-src 'self' 'unsafe-inline' 'unsafe-eval' https://re7.ache.one; img-src 'self' data: https://re7.ache.one; style-src 'self' 'unsafe-inline' 'unsafe-eval'  re7.ache.one; font-src 'self' data: https://re7.ache.one; worker-src 'unsafe-inline' 'unsafe-eval' https://re7.ache.one blob:";

  location = /self/ {
    auth_basic "Monitoring tool - Authentication required";
    auth_basic_user_file /srv/re7.ache.one/self/.htpasswd;

    try_files   $uri /self/index.html =404;
  }

  # Fuckers from data analysis tool
  deny 85.192.63.22;

  location ~ /(src|.git) {
    deny all;
    return 403;
  }


  location /inbox {
    proxy_pass http://localhost:8080;
  }

  location /users {
    proxy_pass http://localhost:8080;
  }

  location /.well-known/webfinger {
    proxy_pass http://localhost:8080;
  }

  location / {
    port_in_redirect off;
  }

  error_page 404 /404.html;
  location = /40x.html {
    port_in_redirect off;
  }

  error_page 500 502 503 504 /50x.html;
  location = /50x.html {
    port_in_redirect off;
  }
  port_in_redirect off;


  listen [::]:8083 ssl http2; # managed by myself.
  listen 8083 ssl http2; # managed by moi !
  ssl_certificate /etc/letsencrypt/live/re7.ache.one/fullchain.pem;
  ssl_certificate_key /etc/letsencrypt/live/re7.ache.one/privkey.pem; # managed by Certbot
  ssl_dhparam /etc/letsencrypt/ssl-dhparams.pem;
}
+0 -0

Je tenterais de monter une instance mastodon pour voir les logs de ce côté durant la recherche. C,était le meilleur moyen que j,avais de debug.

Pour instance.txt l’idée est de lister les différentes instances par défaut de cha-cu.it pour les suivre ;)

Je tenterais de monter une instance mastodon pour voir les logs de ce côté durant la recherche. C,était le meilleur moyen que j,avais de debug.

Ben je vais faire ça alors. Je te tiens au courant. :)
Déjà, ça me rassure un peu. J’ai bien compris a priori comment c’est censé fonctionner.

La seule différence que j’ai avec toi, il me semble, est que ma clé est plus courte car Letsencrypt m’a donné une courbe elliptique plutôt que RSA.
Mais déjà pour le savoir, il faudrait qu’il requête le WebFinger ! >_<"

Merci pour ta réponse.

+0 -0

Ce matin justement j’ai fini la même chose ! :D J’ai galéré avec Vagrant.
Au final, j’ai fais une PR sur Mastodon. ^^"

Par-contre, sur mon instance locale http://mastodon.local:3000 je n’arrive même pas à charger mon compte mastodon !

Je requêtes un lookup sur @ache@mastodon.xyz et dans les logs de l’instance j’ai ceci:

05:00:23 web.1     | Started GET "/api/v1/accounts/lookup?acct=ache%40mastodon.xyz" for 10.0.2.2 at 2024-03-22 05:00:23 +0000
05:00:23 web.1     | Cache read: blocked_ips ({:compress=>true, :compress_threshold=>1024})
05:00:23 web.1     | Cache generate: blocked_ips ({:compress=>true, :compress_threshold=>1024})
05:00:23 web.1     |   IpBlock Pluck (0.1ms)  SELECT "ip_blocks"."ip" FROM "ip_blocks" WHERE "ip_blocks"."severity" = $1  [["severity", 9999]]
05:00:23 web.1     |   ↳ app/models/ip_block.rb:39:in `block in blocked?'
05:00:23 web.1     | Cache write: blocked_ips ({:compress=>true, :compress_threshold=>1024})
05:00:23 web.1     | Cache write: rack::attack:5703612:throttle_unauthenticated_api:10.0.2.2 ({:compress=>true, :compress_threshold=>1024, :expires_in=>278})
05:00:23 web.1     | Processing by Api::V1::Accounts::LookupController#show as */*
05:00:23 web.1     |   Parameters: {"acct"=>"ache@mastodon.xyz"}
05:00:23 web.1     |   DomainBlock Load (3.3ms)  SELECT "domain_blocks".* FROM "domain_blocks" WHERE "domain_blocks"."domain" IN ($1, $2) ORDER BY CHAR_LENGTH(domain) DESC LIMIT $3  [["domain", "mastodon.xyz"], ["domain", "xyz"], ["LIMIT", 1]]
05:00:23 web.1     |   ↳ app/models/domain_block.rb:73:in `rule_for'
05:00:23 web.1     |   Account Load (0.2ms)  SELECT "accounts"."id", "accounts"."username", "accounts"."domain", "accounts"."private_key", "accounts"."public_key", "accounts"."created_at", "accounts"."updated_at", "accounts"."note", "accounts"."display_name", "accounts"."uri", "accounts"."url", "accounts"."avatar_file_name", "accounts"."avatar_content_type", "accounts"."avatar_file_size", "accounts"."avatar_updated_at", "accounts"."header_file_name", "accounts"."header_content_type", "accounts"."header_file_size", "accounts"."header_updated_at", "accounts"."avatar_remote_url", "accounts"."locked", "accounts"."header_remote_url", "accounts"."last_webfingered_at", "accounts"."inbox_url", "accounts"."outbox_url", "accounts"."shared_inbox_url", "accounts"."followers_url", "accounts"."protocol", "accounts"."memorial", "accounts"."moved_to_account_id", "accounts"."featured_collection_url", "accounts"."fields", "accounts"."actor_type", "accounts"."discoverable", "accounts"."also_known_as", "accounts"."silenced_at", "accounts"."suspended_at", "accounts"."hide_collections", "accounts"."avatar_storage_schema_version", "accounts"."header_storage_schema_version", "accounts"."devices_url", "accounts"."suspension_origin", "accounts"."sensitized_at", "accounts"."trendable", "accounts"."reviewed_at", "accounts"."requested_review_at", "accounts"."indexable" FROM "accounts" WHERE LOWER("accounts"."username") != '' AND LOWER("accounts"."username") = 'ache' AND LOWER("accounts"."domain") = 'mastodon.xyz' ORDER BY "accounts"."id" ASC LIMIT $1  [["LIMIT", 1]]
05:00:23 web.1     |   ↳ app/models/concerns/account/finder_concern.rb:41:in `account'
05:00:23 web.1     | Completed 404 Not Found in 56ms (Views: 2.2ms | ActiveRecord: 3.5ms | Allocations: 3153)

On voit qu’il reçoit bien le lookup mais qu’il ne fait aucune requêtes de WebFinger ! Il cherche dans sa BDD les informations du compte.

C’est très bizarre. :/

+0 -0

Je tiens peut-être un truc.

J’ai réussi à faire un WebFinger !
Il faut faire une recherche et pas un lookup. Donc grosso modo, il faut utiliser ça:

image.png
image.png

Qui va faire un WebFinger pour afficher les résultats si on tape un nom d’utilisateur externe (ache@mastodon.xyz).

Donc j’ai ceci quand je fais une recherche sur ache@re7.ache.one:

17:54:50 web.1     | Started GET "/api/v2/search?q=%40ache%40re7.ache.one&resolve=true&limit=11" for 10.0.2.2 at 2024-03-22 17:54:50 +0000
17:54:50 web.1     | Cache read: blocked_ips ({:compress=>true, :compress_threshold=>1024})
17:54:50 web.1     | Cache generate: blocked_ips ({:compress=>true, :compress_threshold=>1024})
17:54:50 web.1     |   IpBlock Pluck (0.1ms)  SELECT "ip_blocks"."ip" FROM "ip_blocks" WHERE "ip_blocks"."severity" = $1  [["severity", 9999]]
17:54:50 web.1     |   ↳ app/models/ip_block.rb:39:in `block in blocked?'
17:54:50 web.1     | Cache write: blocked_ips ({:compress=>true, :compress_threshold=>1024})
17:54:50 web.1     |   Doorkeeper::AccessToken Load (0.1ms)  SELECT "oauth_access_tokens".* FROM "oauth_access_tokens" WHERE "oauth_access_tokens"."token" = $1 LIMIT $2  [["token", "[FILTERED]"], ["LIMIT", 1]]
17:54:50 web.1     |   ↳ config/initializers/rack_attack.rb:10:in `authenticated_token'
17:54:50 web.1     | Cache write: rack::attack:5703766:throttle_authenticated_api:1 ({:compress=>true, :compress_threshold=>1024, :expires_in=>11})
17:54:50 web.1     | Cache write: rack::attack:5703766:throttle_per_token_api:5 ({:compress=>true, :compress_threshold=>1024, :expires_in=>11})
17:54:50 web.1     | Processing by Api::V2::SearchController#index as HTML
17:54:50 web.1     |   Parameters: {"q"=>"@ache@re7.ache.one", "resolve"=>"true", "limit"=>"11"}
17:54:50 web.1     |   CACHE Doorkeeper::AccessToken Load (0.0ms)  SELECT "oauth_access_tokens".* FROM "oauth_access_tokens" WHERE "oauth_access_tokens"."token" = $1 LIMIT $2  [["token", "[FILTERED]"], ["LIMIT", 1]]
17:54:50 web.1     |   ↳ app/controllers/api/base_controller.rb:58:in `current_resource_owner'
17:54:50 web.1     |   User Load (0.1ms)  SELECT "users"."id", "users"."email", "users"."created_at", "users"."updated_at", "users"."encrypted_password", "users"."reset_password_token", "users"."reset_password_sent_at", "users"."sign_in_count", "users"."current_sign_in_at", "users"."last_sign_in_at", "users"."confirmation_token", "users"."confirmed_at", "users"."confirmation_sent_at", "users"."unconfirmed_email", "users"."locale", "users"."encrypted_otp_secret", "users"."encrypted_otp_secret_iv", "users"."encrypted_otp_secret_salt", "users"."consumed_timestep", "users"."otp_required_for_login", "users"."last_emailed_at", "users"."otp_backup_codes", "users"."account_id", "users"."disabled", "users"."invite_id", "users"."chosen_languages", "users"."created_by_application_id", "users"."approved", "users"."sign_in_token", "users"."sign_in_token_sent_at", "users"."webauthn_id", "users"."sign_up_ip", "users"."role_id", "users"."settings", "users"."time_zone" FROM "users" WHERE "users"."id" = $1 LIMIT $2  [["id", 1], ["LIMIT", 1]]
17:54:50 web.1     |   ↳ app/controllers/api/base_controller.rb:58:in `current_resource_owner'
17:54:50 web.1     |   SessionActivation Load (0.1ms)  SELECT "session_activations".* FROM "session_activations" WHERE "session_activations"."session_id" = $1 LIMIT $2  [["session_id", "344f7dc54308ebb2fabaacb4f95eec2d"], ["LIMIT", 1]]
17:54:50 web.1     |   ↳ app/controllers/application_controller.rb:156:in `current_session'
17:54:50 web.1     |   Account Load (0.2ms)  SELECT "accounts"."id", "accounts"."username", "accounts"."domain", "accounts"."private_key", "accounts"."public_key", "accounts"."created_at", "accounts"."updated_at", "accounts"."note", "accounts"."display_name", "accounts"."uri", "accounts"."url", "accounts"."avatar_file_name", "accounts"."avatar_content_type", "accounts"."avatar_file_size", "accounts"."avatar_updated_at", "accounts"."header_file_name", "accounts"."header_content_type", "accounts"."header_file_size", "accounts"."header_updated_at", "accounts"."avatar_remote_url", "accounts"."locked", "accounts"."header_remote_url", "accounts"."last_webfingered_at", "accounts"."inbox_url", "accounts"."outbox_url", "accounts"."shared_inbox_url", "accounts"."followers_url", "accounts"."protocol", "accounts"."memorial", "accounts"."moved_to_account_id", "accounts"."featured_collection_url", "accounts"."fields", "accounts"."actor_type", "accounts"."discoverable", "accounts"."also_known_as", "accounts"."silenced_at", "accounts"."suspended_at", "accounts"."hide_collections", "accounts"."avatar_storage_schema_version", "accounts"."header_storage_schema_version", "accounts"."devices_url", "accounts"."suspension_origin", "accounts"."sensitized_at", "accounts"."trendable", "accounts"."reviewed_at", "accounts"."requested_review_at", "accounts"."indexable" FROM "accounts" WHERE "accounts"."id" = $1 LIMIT $2  [["id", 112136525779164011], ["LIMIT", 1]]
17:54:50 web.1     |   ↳ app/controllers/api/base_controller.rb:72:in `require_not_suspended!'
17:54:50 web.1     | Unpermitted parameters: :q, :resolve, :limit. Context: { controller: Api::V2::SearchController, action: index, request: #<ActionDispatch::Request:0x00007f2c27c41238>, params: {"q"=>"@ache@re7.ache.one", "resolve"=>"true", "limit"=>"11", "controller"=>"api/v2/search", "action"=>"index"} }
17:54:50 web.1     |   DomainBlock Load (0.2ms)  SELECT "domain_blocks".* FROM "domain_blocks" WHERE "domain_blocks"."domain" IN ($1, $2, $3) ORDER BY CHAR_LENGTH(domain) DESC LIMIT $4  [["domain", "re7.ache.one"], ["domain", "ache.one"], ["domain", "one"], ["LIMIT", 1]]
17:54:50 web.1     |   ↳ app/models/domain_block.rb:73:in `rule_for'
17:54:50 web.1     |   Account Load (0.2ms)  SELECT "accounts"."id", "accounts"."username", "accounts"."domain", "accounts"."private_key", "accounts"."public_key", "accounts"."created_at", "accounts"."updated_at", "accounts"."note", "accounts"."display_name", "accounts"."uri", "accounts"."url", "accounts"."avatar_file_name", "accounts"."avatar_content_type", "accounts"."avatar_file_size", "accounts"."avatar_updated_at", "accounts"."header_file_name", "accounts"."header_content_type", "accounts"."header_file_size", "accounts"."header_updated_at", "accounts"."avatar_remote_url", "accounts"."locked", "accounts"."header_remote_url", "accounts"."last_webfingered_at", "accounts"."inbox_url", "accounts"."outbox_url", "accounts"."shared_inbox_url", "accounts"."followers_url", "accounts"."protocol", "accounts"."memorial", "accounts"."moved_to_account_id", "accounts"."featured_collection_url", "accounts"."fields", "accounts"."actor_type", "accounts"."discoverable", "accounts"."also_known_as", "accounts"."silenced_at", "accounts"."suspended_at", "accounts"."hide_collections", "accounts"."avatar_storage_schema_version", "accounts"."header_storage_schema_version", "accounts"."devices_url", "accounts"."suspension_origin", "accounts"."sensitized_at", "accounts"."trendable", "accounts"."reviewed_at", "accounts"."requested_review_at", "accounts"."indexable" FROM "accounts" WHERE LOWER("accounts"."username") != '' AND LOWER("accounts"."username") = 'ache' AND LOWER("accounts"."domain") = 're7.ache.one' ORDER BY "accounts"."id" ASC LIMIT $1  [["LIMIT", 1]]
17:54:50 web.1     |   ↳ app/models/concerns/account/finder_concern.rb:41:in `account'
17:54:50 web.1     | [httplog] GET https://re7.ache.one/.well-known/webfinger?resource=acct:ache@re7.ache.one completed with status code 200 in 0.05281 seconds
17:54:50 web.1     |   CACHE DomainBlock Load (0.0ms)  SELECT "domain_blocks".* FROM "domain_blocks" WHERE "domain_blocks"."domain" IN ($1, $2, $3) ORDER BY CHAR_LENGTH(domain) DESC LIMIT $4  [["domain", "re7.ache.one"], ["domain", "ache.one"], ["domain", "one"], ["LIMIT", 1]]
17:54:50 web.1     |   ↳ app/models/domain_block.rb:73:in `rule_for'
17:54:50 web.1     |   CACHE Account Load (0.0ms)  SELECT "accounts"."id", "accounts"."username", "accounts"."domain", "accounts"."private_key", "accounts"."public_key", "accounts"."created_at", "accounts"."updated_at", "accounts"."note", "accounts"."display_name", "accounts"."uri", "accounts"."url", "accounts"."avatar_file_name", "accounts"."avatar_content_type", "accounts"."avatar_file_size", "accounts"."avatar_updated_at", "accounts"."header_file_name", "accounts"."header_content_type", "accounts"."header_file_size", "accounts"."header_updated_at", "accounts"."avatar_remote_url", "accounts"."locked", "accounts"."header_remote_url", "accounts"."last_webfingered_at", "accounts"."inbox_url", "accounts"."outbox_url", "accounts"."shared_inbox_url", "accounts"."followers_url", "accounts"."protocol", "accounts"."memorial", "accounts"."moved_to_account_id", "accounts"."featured_collection_url", "accounts"."fields", "accounts"."actor_type", "accounts"."discoverable", "accounts"."also_known_as", "accounts"."silenced_at", "accounts"."suspended_at", "accounts"."hide_collections", "accounts"."avatar_storage_schema_version", "accounts"."header_storage_schema_version", "accounts"."devices_url", "accounts"."suspension_origin", "accounts"."sensitized_at", "accounts"."trendable", "accounts"."reviewed_at", "accounts"."requested_review_at", "accounts"."indexable" FROM "accounts" WHERE LOWER("accounts"."username") != '' AND LOWER("accounts"."username") = 'ache' AND LOWER("accounts"."domain") = 're7.ache.one' ORDER BY "accounts"."id" ASC LIMIT $1  [["LIMIT", 1]]
17:54:50 web.1     |   ↳ app/models/concerns/account/finder_concern.rb:41:in `account'
17:54:50 web.1     |   CACHE DomainBlock Load (0.0ms)  SELECT "domain_blocks".* FROM "domain_blocks" WHERE "domain_blocks"."domain" IN ($1, $2, $3) ORDER BY CHAR_LENGTH(domain) DESC LIMIT $4  [["domain", "re7.ache.one"], ["domain", "ache.one"], ["domain", "one"], ["LIMIT", 1]]
17:54:50 web.1     |   ↳ app/models/domain_block.rb:73:in `rule_for'
17:54:50 web.1     |   Account Load (0.2ms)  SELECT "accounts"."id", "accounts"."username", "accounts"."domain", "accounts"."private_key", "accounts"."public_key", "accounts"."created_at", "accounts"."updated_at", "accounts"."note", "accounts"."display_name", "accounts"."uri", "accounts"."url", "accounts"."avatar_file_name", "accounts"."avatar_content_type", "accounts"."avatar_file_size", "accounts"."avatar_updated_at", "accounts"."header_file_name", "accounts"."header_content_type", "accounts"."header_file_size", "accounts"."header_updated_at", "accounts"."avatar_remote_url", "accounts"."locked", "accounts"."header_remote_url", "accounts"."last_webfingered_at", "accounts"."inbox_url", "accounts"."outbox_url", "accounts"."shared_inbox_url", "accounts"."followers_url", "accounts"."protocol", "accounts"."memorial", "accounts"."moved_to_account_id", "accounts"."featured_collection_url", "accounts"."fields", "accounts"."actor_type", "accounts"."discoverable", "accounts"."also_known_as", "accounts"."silenced_at", "accounts"."suspended_at", "accounts"."hide_collections", "accounts"."avatar_storage_schema_version", "accounts"."header_storage_schema_version", "accounts"."devices_url", "accounts"."suspension_origin", "accounts"."sensitized_at", "accounts"."trendable", "accounts"."reviewed_at", "accounts"."requested_review_at", "accounts"."indexable" FROM "accounts" WHERE "accounts"."id" = $1 LIMIT $2  [["id", -99], ["LIMIT", 1]]
17:54:50 web.1     |   ↳ app/models/concerns/account/finder_concern.rb:16:in `representative'
17:54:50 web.1     | [httplog] GET https://re7.ache.one/users/ache completed with status code 200 in 0.025295 seconds
17:54:50 web.1     | Fetching actor https://re7.ache.one/users/ache failed: Error fetching actor JSON at https://re7.ache.one/users/ache
17:54:50 web.1     |   Follow Pluck (0.2ms)  SELECT "follows"."target_account_id" FROM "follows" WHERE "follows"."account_id" = $1  [["account_id", 112136525779164011]]
17:54:50 web.1     |   ↳ app/services/account_search_service.rb:120:in `following_ids'
17:54:50 web.1     | [httplog] POST http://localhost:9200/accounts/_search completed with status code 200 in 0.003317 seconds
17:54:50 web.1     |   AccountsIndex Search (4.4ms) {:index=>["accounts"], :body=>{:size=>11, :from=>0, :query=>{:bool=>{:must=>{:function_score=>{:query=>{:bool=>{:must=>[{:multi_match=>{:query=>"ache@re7.ache.one", :type=>"most_fields", :fields=>["username^2", "display_name^2", "text", "text.*"], :operator=>"and"}}], :must_not=>[]}}, :functions=>[{:script_score=>{:script=>{:source=>"(Math.max(doc['followers_count'].value, 0) + 0.0) / (Math.max(doc['followers_count'].value, 0) + Math.max(doc['following_count'].value, 0) + 1)"}}}, {:script_score=>{:script=>{:source=>"(Math.max(doc['followers_count'].value, 0) / (Math.max(doc['followers_count'].value, 0) + 1))"}}}, {:gauss=>{:last_status_at=>{:scale=>"30d", :offset=>"30d", :decay=>0.3}}}]}}, :should=>[{:terms=>{:id=>[112136525779164011], :boost=>100}}]}}}}
17:54:50 web.1     | [httplog] POST http://localhost:9200/public_statuses,statuses/_search completed with status code 200 in 0.003019 seconds
17:54:50 web.1     |   [PublicStatusesIndex, StatusesIndex] Search (3.7ms) {:index=>["public_statuses", "statuses"], :body=>{:collapse=>{"field"=>:id}, :sort=>[{"id"=>{:order=>:desc}}], :size=>11, :from=>0, :query=>{:bool=>{:must=>{:multi_match=>{:type=>"most_fields", :query=>"@ache@re7.ache.one", :fields=>["text", "text.stemmed"], :operator=>"and"}}, :filter=>{:bool=>{:should=>[{:term=>{:_index=>"public_statuses"}}, {:bool=>{:must=>[{:term=>{:_index=>"statuses"}}, {:term=>{:searchable_by=>112136525779164011}}]}}], :minimum_should_match=>1}}}}}}
17:54:50 web.1     | [httplog] POST http://localhost:9200/tags/_search completed with status code 404 in 0.001219 seconds
17:54:50 web.1     |   TagsIndex Search (2.0ms) {:index=>["tags"], :body=>{:size=>11, :from=>0, :query=>{:function_score=>{:query=>{:multi_match=>{:query=>"@ache@re7.ache.one", :fields=>["name.edge_ngram", "name"], :type=>"most_fields", :operator=>"and"}}, :functions=>[{:field_value_factor=>{:field=>"usage", :modifier=>"log2p", :missing=>0}}, {:gauss=>{:last_status_at=>{:scale=>"7d", :offset=>"14d", :decay=>0.5}}}], :boost_mode=>"multiply"}}}}
17:54:50 web.1     |   Tag Load (0.3ms)  SELECT "tags".* FROM "tags" WHERE LOWER("tags"."name") = LOWER('achere7acheone') ORDER BY "tags"."id" ASC LIMIT $1  [["LIMIT", 1]]
17:54:50 web.1     |   ↳ app/models/tag.rb:141:in `find_normalized'
17:54:50 web.1     | Completed 200 OK in 159ms (Views: 0.5ms | ActiveRecord: 1.6ms | Allocations: 30558)
17:54:50 web.1     | 
17:54:50 web.1     | 

Et quelques secondes après un truc comme ça:

17:55:04 sidekiq.1 | 2024-03-22T17:55:04.509Z pid=2871 tid=lab INFO: queueing Scheduler::SuspendedUserCleanupScheduler (suspended_user_cleanup_scheduler)
17:55:04 sidekiq.1 | 2024-03-22T17:55:04.510Z pid=2871 tid=ofr class=Scheduler::SuspendedUserCleanupScheduler jid=d5ef9452afa1efa41921ae92 INFO: start
17:55:04 sidekiq.1 |   AccountDeletionRequest Load (0.2ms)  SELECT "account_deletion_requests".* FROM "account_deletion_requests" ORDER BY "account_deletion_requests"."id" ASC LIMIT $1  [["LIMIT", 10]]
17:55:04 sidekiq.1 |   ↳ app/workers/scheduler/suspended_user_cleanup_scheduler.rb:32:in `process_deletion_requests!'
17:55:04 sidekiq.1 | 2024-03-22T17:55:04.582Z pid=2871 tid=ofr class=Scheduler::SuspendedUserCleanupScheduler jid=d5ef9452afa1efa41921ae92 elapsed=0.072 INFO: done
17:55:06 sidekiq.1 | 2024-03-22T17:55:06.319Z pid=2871 tid=lav INFO: queueing Scheduler::AccountsStatusesCleanupScheduler (accounts_statuses_cleanup_scheduler)
17:55:06 sidekiq.1 | 2024-03-22T17:55:06.321Z pid=2871 tid=o5j class=Scheduler::AccountsStatusesCleanupScheduler jid=f39f7ffc728f5fe86996a601 INFO: start
17:55:06 sidekiq.1 | 2024-03-22T17:55:06.321Z pid=2871 tid=kzj INFO: queueing Scheduler::IndexingScheduler (indexing_scheduler)
17:55:06 sidekiq.1 | 2024-03-22T17:55:06.322Z pid=2871 tid=o17 class=Scheduler::IndexingScheduler jid=a436e16473f9bf5a6edd5567 INFO: start
17:55:06 sidekiq.1 | 2024-03-22T17:55:06.439Z pid=2871 tid=o17 class=Scheduler::IndexingScheduler jid=a436e16473f9bf5a6edd5567 elapsed=0.117 INFO: done
17:55:06 sidekiq.1 |   AccountStatusesCleanupPolicy Load (0.3ms)  SELECT "account_statuses_cleanup_policies".* FROM "account_statuses_cleanup_policies" WHERE "account_statuses_cleanup_policies"."enabled" = $1 AND "account_statuses_cleanup_policies"."id" >= $2 ORDER BY "account_statuses_cleanup_policies"."id" ASC LIMIT $3  [["enabled", true], ["id", 0], ["LIMIT", 1000]]
17:55:06 sidekiq.1 |   ↳ app/workers/scheduler/accounts_statuses_cleanup_scheduler.rb:61:in `block in perform'
17:55:06 sidekiq.1 |   AccountStatusesCleanupPolicy Load (0.2ms)  SELECT "account_statuses_cleanup_policies".* FROM "account_statuses_cleanup_policies" WHERE "account_statuses_cleanup_policies"."enabled" = $1 AND ("account_statuses_cleanup_policies"."id" <= $2 OR 1=0) ORDER BY "account_statuses_cleanup_policies"."id" ASC LIMIT $3  [["enabled", true], ["id", 0], ["LIMIT", 1000]]
17:55:06 sidekiq.1 |   ↳ app/workers/scheduler/accounts_statuses_cleanup_scheduler.rb:61:in `block in perform'
17:55:06 sidekiq.1 | 2024-03-22T17:55:06.443Z pid=2871 tid=o5j class=Scheduler::AccountsStatusesCleanupScheduler jid=f39f7ffc728f5fe86996a601 elapsed=0.122 INFO: done
17:55:25 web.1     | Started GET "/api/v1/notifications/policy" for 10.0.2.2 at 2024-03-22 17:55:25 +0000
17:55:25 web.1     | Cache read: blocked_ips ({:compress=>true, :compress_threshold=>1024})
17:55:25 web.1     | Cache generate: blocked_ips ({:compress=>true, :compress_threshold=>1024})
17:55:25 web.1     |   IpBlock Pluck (0.1ms)  SELECT "ip_blocks"."ip" FROM "ip_blocks" WHERE "ip_blocks"."severity" = $1  [["severity", 9999]]
17:55:25 web.1     |   ↳ app/models/ip_block.rb:39:in `block in blocked?'
17:55:25 web.1     | Cache write: blocked_ips ({:compress=>true, :compress_threshold=>1024})
17:55:25 web.1     |   Doorkeeper::AccessToken Load (0.1ms)  SELECT "oauth_access_tokens".* FROM "oauth_access_tokens" WHERE "oauth_access_tokens"."token" = $1 LIMIT $2  [["token", "[FILTERED]"], ["LIMIT", 1]]
17:55:25 web.1     |   ↳ config/initializers/rack_attack.rb:10:in `authenticated_token'
17:55:25 web.1     | Cache write: rack::attack:5703767:throttle_authenticated_api:1 ({:compress=>true, :compress_threshold=>1024, :expires_in=>276})
17:55:25 web.1     | Cache write: rack::attack:5703767:throttle_per_token_api:5 ({:compress=>true, :compress_threshold=>1024, :expires_in=>276})
17:55:25 web.1     | Processing by Api::V1::Notifications::PoliciesController#show as HTML
17:55:25 web.1     |   CACHE Doorkeeper::AccessToken Load (0.0ms)  SELECT "oauth_access_tokens".* FROM "oauth_access_tokens" WHERE "oauth_access_tokens"."token" = $1 LIMIT $2  [["token", "[FILTERED]"], ["LIMIT", 1]]
17:55:25 web.1     |   ↳ app/controllers/api/base_controller.rb:58:in `current_resource_owner'
17:55:25 web.1     |   User Load (0.2ms)  SELECT "users"."id", "users"."email", "users"."created_at", "users"."updated_at", "users"."encrypted_password", "users"."reset_password_token", "users"."reset_password_sent_at", "users"."sign_in_count", "users"."current_sign_in_at", "users"."last_sign_in_at", "users"."confirmation_token", "users"."confirmed_at", "users"."confirmation_sent_at", "users"."unconfirmed_email", "users"."locale", "users"."encrypted_otp_secret", "users"."encrypted_otp_secret_iv", "users"."encrypted_otp_secret_salt", "users"."consumed_timestep", "users"."otp_required_for_login", "users"."last_emailed_at", "users"."otp_backup_codes", "users"."account_id", "users"."disabled", "users"."invite_id", "users"."chosen_languages", "users"."created_by_application_id", "users"."approved", "users"."sign_in_token", "users"."sign_in_token_sent_at", "users"."webauthn_id", "users"."sign_up_ip", "users"."role_id", "users"."settings", "users"."time_zone" FROM "users" WHERE "users"."id" = $1 LIMIT $2  [["id", 1], ["LIMIT", 1]]
17:55:25 web.1     |   ↳ app/controllers/api/base_controller.rb:58:in `current_resource_owner'
17:55:25 web.1     |   SessionActivation Load (0.2ms)  SELECT "session_activations".* FROM "session_activations" WHERE "session_activations"."session_id" = $1 LIMIT $2  [["session_id", "344f7dc54308ebb2fabaacb4f95eec2d"], ["LIMIT", 1]]
17:55:25 web.1     |   ↳ app/controllers/application_controller.rb:156:in `current_session'
17:55:25 web.1     |   Account Load (0.2ms)  SELECT "accounts"."id", "accounts"."username", "accounts"."domain", "accounts"."private_key", "accounts"."public_key", "accounts"."created_at", "accounts"."updated_at", "accounts"."note", "accounts"."display_name", "accounts"."uri", "accounts"."url", "accounts"."avatar_file_name", "accounts"."avatar_content_type", "accounts"."avatar_file_size", "accounts"."avatar_updated_at", "accounts"."header_file_name", "accounts"."header_content_type", "accounts"."header_file_size", "accounts"."header_updated_at", "accounts"."avatar_remote_url", "accounts"."locked", "accounts"."header_remote_url", "accounts"."last_webfingered_at", "accounts"."inbox_url", "accounts"."outbox_url", "accounts"."shared_inbox_url", "accounts"."followers_url", "accounts"."protocol", "accounts"."memorial", "accounts"."moved_to_account_id", "accounts"."featured_collection_url", "accounts"."fields", "accounts"."actor_type", "accounts"."discoverable", "accounts"."also_known_as", "accounts"."silenced_at", "accounts"."suspended_at", "accounts"."hide_collections", "accounts"."avatar_storage_schema_version", "accounts"."header_storage_schema_version", "accounts"."devices_url", "accounts"."suspension_origin", "accounts"."sensitized_at", "accounts"."trendable", "accounts"."reviewed_at", "accounts"."requested_review_at", "accounts"."indexable" FROM "accounts" WHERE "accounts"."id" = $1 LIMIT $2  [["id", 112136525779164011], ["LIMIT", 1]]
17:55:25 web.1     |   ↳ app/controllers/api/base_controller.rb:72:in `require_not_suspended!'
17:55:25 web.1     |   NotificationPolicy Load (0.2ms)  SELECT "notification_policies".* FROM "notification_policies" WHERE "notification_policies"."account_id" = $1 LIMIT $2  [["account_id", 112136525779164011], ["LIMIT", 1]]
17:55:25 web.1     |   ↳ app/controllers/api/v1/notifications/policies_controller.rb:22:in `set_policy'
17:55:25 web.1     |   NotificationRequest Pluck (0.3ms)  SELECT count(*), coalesce(sum(notifications_count), 0)::bigint FROM "notification_requests" WHERE "notification_requests"."account_id" = $1 AND "notification_requests"."dismissed" = $2 LIMIT $3  [["account_id", 112136525779164011], ["dismissed", false], ["LIMIT", 1]]
17:55:25 web.1     |   ↳ app/models/notification_policy.rb:34:in `pending_notification_requests'
17:55:25 web.1     | Completed 200 OK in 76ms (Views: 2.0ms | ActiveRecord: 0.9ms | Allocations: 3974)
17:55:25 web.1     | 
17:55:25 web.1     | 

Je note que j’ai ça:

17:54:50 web.1     | Fetching actor https://re7.ache.one/users/ache failed: Error fetching actor JSON at https://re7.ache.one/users/ache

Alors que je suis bien capable de requêter le JSON.

$ curl https://re7.ache.one/users/ache
{"@context":["https://www.w3.org/ns/activitystreams","https://w3id.org/security/v1",{"Curve25519Key":"toot:Curve25519Key","Device":"toot:Device","Ed25519Key":"toot:Ed25519Key","Ed25519Signature":"toot:Ed25519Signature","EncryptedMessage":"toot:EncryptedMessage","PropertyValue":"schema:PropertyValue","alsoKnownAs":{"@id":"as:alsoKnownAs","@type":"@id"},"cipherText":"toot:cipherText","claim":{"@id":"toot:claim","@type":"@id"},"deviceId":"toot:deviceId","devices":{"@id":"toot:devices","@type":"@id"},"discoverable":"toot:discoverable","featuredTags":{"@id":"toot:featuredTags","@type":"@id"},"fingerprintKey":{"@id":"toot:fingerprintKey","@type":"@id"},"focalPoint":{"@container":"@list","@id":"toot:focalPoint"},"identityKey":{"@id":"toot:identityKey","@type":"@id"},"manuallyApprovesFollowers":"as:manuallyApprovesFollowers","messageFranking":"toot:messageFranking","messageType":"toot:messageType","movedTo":{"@id":"as:movedTo","@type":"@id"},"publicKeyBase64":"toot:publicKeyBase64","schema":"http://schema.org#","suspended":"toot:suspended","toot":"http://joinmastodon.org/ns#","value":"schema:value"}],"attachment":[{"name":"website","type":"PropertyValue","value":"<a href=\"https://re7.ache.one\" target=\"_blank\" rel=\"nofollow noopener noreferrer me\"><span class=\"invisible\">https://</)span><span class=\"\">re7.ache.one</span><span class=\"invisible\"></span></a>"}],"discoverable":true,"endpoints":{"sharedInbox":"https://re7.ache.one/users/ache/inbox"},"featuredTags":"https://re7.ache.one/tags","followers":"https://re7.ache.one/users/ache/followers","following":"https://re7.ache.one/users/ache/following","icon":{"type":"Image","url":"https://re7.ache.one/chactivityserver/profile.jpg"},"id":"https://re7.ache.one/users/ache","image":{"mediaType":"image/jpeg","type":"Image","url":"https://re7.ache.one/logo.png"},"inbox":"https://re7.ache.one/users/ache/inbox","manuallyApprovesFollowers":false,"name":"ache","outbox":"https://re7.ache.one/users/ache/outbox","preferredUsername":"ache","publicKey":{"id":"https://re7.ache.one/users/ache#main-key","owner":"https://re7.ache.one/users/ache","publicKeyPem":"-----BEGIN PUBLIC KEY-----\nMFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAEVFk216dz7oneIM5nBpC5tkquLIdz\nqxZz5xvQFGn0qdUPNnHXk3214eWGDf6O6Qt/6KQO+4d+NjaIXMQiID/N3A==\n-----END PUBLIC KEY-----\n"},"published":"2024-03-22T00:24:56.740496247+00:00","summary":"Un site de recettes de cordon rouge ! re7.ache.one est un petit site de partage de recettes en tout genre. Les recettes sont en grande partie réalisées sous la supervision de Rouge, le renard.","tag":[],"type":"Person","url":"https://re7.ache.one/recettes/"}

Si je requête @chef@cha-cu.it j’ai ça:

18:03:20 web.1     | Started GET "/api/v2/search?q=%40chef%40cha-cu.it&resolve=true&limit=11" for 10.0.2.2 at 2024-03-22 18:03:20 +0000
18:03:20 web.1     | Started GET "/api/v1/trends/tags" for 10.0.2.2 at 2024-03-22 18:03:20 +0000
18:03:20 web.1     | Cache read: blocked_ips ({:compress=>true, :compress_threshold=>1024})
18:03:20 web.1     | Cache read: blocked_ips ({:compress=>true, :compress_threshold=>1024})
18:03:20 web.1     | Cache generate: blocked_ips ({:compress=>true, :compress_threshold=>1024})
18:03:20 web.1     | Cache generate: blocked_ips ({:compress=>true, :compress_threshold=>1024})
18:03:20 web.1     |   IpBlock Pluck (0.1ms)  SELECT "ip_blocks"."ip" FROM "ip_blocks" WHERE "ip_blocks"."severity" = $1  [["severity", 9999]]
18:03:20 web.1     |   ↳ app/models/ip_block.rb:39:in `block in blocked?'
18:03:20 web.1     | Cache write: blocked_ips ({:compress=>true, :compress_threshold=>1024})
18:03:20 web.1     |   IpBlock Pluck (0.1ms)  SELECT "ip_blocks"."ip" FROM "ip_blocks" WHERE "ip_blocks"."severity" = $1  [["severity", 9999]]
18:03:20 web.1     |   Doorkeeper::AccessToken Load (0.1ms)  SELECT "oauth_access_tokens".* FROM "oauth_access_tokens" WHERE "oauth_access_tokens"."token" = $1 LIMIT $2  [["token", "[FILTERED]"], ["LIMIT", 1]]
18:03:20 web.1     |   ↳ app/models/ip_block.rb:39:in `block in blocked?'
18:03:20 web.1     |   ↳ config/initializers/rack_attack.rb:10:in `authenticated_token'
18:03:20 web.1     | Cache write: blocked_ips ({:compress=>true, :compress_threshold=>1024})
18:03:20 web.1     | Cache write: rack::attack:5703768:throttle_authenticated_api:1 ({:compress=>true, :compress_threshold=>1024, :expires_in=>101})
18:03:20 web.1     | Cache write: rack::attack:5703768:throttle_per_token_api:5 ({:compress=>true, :compress_threshold=>1024, :expires_in=>101})
18:03:20 web.1     |   Doorkeeper::AccessToken Load (0.1ms)  SELECT "oauth_access_tokens".* FROM "oauth_access_tokens" WHERE "oauth_access_tokens"."token" = $1 LIMIT $2  [["token", "[FILTERED]"], ["LIMIT", 1]]
18:03:20 web.1     |   ↳ config/initializers/rack_attack.rb:10:in `authenticated_token'
18:03:20 web.1     | Cache write: rack::attack:5703768:throttle_authenticated_api:1 ({:compress=>true, :compress_threshold=>1024, :expires_in=>101})
18:03:20 web.1     | Cache write: rack::attack:5703768:throttle_per_token_api:5 ({:compress=>true, :compress_threshold=>1024, :expires_in=>101})
18:03:20 web.1     | Processing by Api::V1::Trends::TagsController#index as HTML
18:03:20 web.1     |   CACHE Doorkeeper::AccessToken Load (0.0ms)  SELECT "oauth_access_tokens".* FROM "oauth_access_tokens" WHERE "oauth_access_tokens"."token" = $1 LIMIT $2  [["token", "[FILTERED]"], ["LIMIT", 1]]
18:03:20 web.1     |   ↳ app/controllers/api/base_controller.rb:58:in `current_resource_owner'
18:03:20 web.1     |   User Load (0.1ms)  SELECT "users"."id", "users"."email", "users"."created_at", "users"."updated_at", "users"."encrypted_password", "users"."reset_password_token", "users"."reset_password_sent_at", "users"."sign_in_count", "users"."current_sign_in_at", "users"."last_sign_in_at", "users"."confirmation_token", "users"."confirmed_at", "users"."confirmation_sent_at", "users"."unconfirmed_email", "users"."locale", "users"."encrypted_otp_secret", "users"."encrypted_otp_secret_iv", "users"."encrypted_otp_secret_salt", "users"."consumed_timestep", "users"."otp_required_for_login", "users"."last_emailed_at", "users"."otp_backup_codes", "users"."account_id", "users"."disabled", "users"."invite_id", "users"."chosen_languages", "users"."created_by_application_id", "users"."approved", "users"."sign_in_token", "users"."sign_in_token_sent_at", "users"."webauthn_id", "users"."sign_up_ip", "users"."role_id", "users"."settings", "users"."time_zone" FROM "users" WHERE "users"."id" = $1 LIMIT $2  [["id", 1], ["LIMIT", 1]]
18:03:20 web.1     |   ↳ app/controllers/api/base_controller.rb:58:in `current_resource_owner'
18:03:20 web.1     |   SessionActivation Load (0.1ms)  SELECT "session_activations".* FROM "session_activations" WHERE "session_activations"."session_id" = $1 LIMIT $2  [["session_id", "344f7dc54308ebb2fabaacb4f95eec2d"], ["LIMIT", 1]]
18:03:20 web.1     |   ↳ app/controllers/application_controller.rb:156:in `current_session'
18:03:20 web.1     | Processing by Api::V2::SearchController#index as HTML
18:03:20 web.1     |   Parameters: {"q"=>"@chef@cha-cu.it", "resolve"=>"true", "limit"=>"11"}
18:03:20 web.1     |   CACHE Doorkeeper::AccessToken Load (0.0ms)  SELECT "oauth_access_tokens".* FROM "oauth_access_tokens" WHERE "oauth_access_tokens"."token" = $1 LIMIT $2  [["token", "[FILTERED]"], ["LIMIT", 1]]
18:03:20 web.1     |   ↳ app/controllers/api/base_controller.rb:58:in `current_resource_owner'
18:03:20 web.1     |   User Load (0.1ms)  SELECT "users"."id", "users"."email", "users"."created_at", "users"."updated_at", "users"."encrypted_password", "users"."reset_password_token", "users"."reset_password_sent_at", "users"."sign_in_count", "users"."current_sign_in_at", "users"."last_sign_in_at", "users"."confirmation_token", "users"."confirmed_at", "users"."confirmation_sent_at", "users"."unconfirmed_email", "users"."locale", "users"."encrypted_otp_secret", "users"."encrypted_otp_secret_iv", "users"."encrypted_otp_secret_salt", "users"."consumed_timestep", "users"."otp_required_for_login", "users"."last_emailed_at", "users"."otp_backup_codes", "users"."account_id", "users"."disabled", "users"."invite_id", "users"."chosen_languages", "users"."created_by_application_id", "users"."approved", "users"."sign_in_token", "users"."sign_in_token_sent_at", "users"."webauthn_id", "users"."sign_up_ip", "users"."role_id", "users"."settings", "users"."time_zone" FROM "users" WHERE "users"."id" = $1 LIMIT $2  [["id", 1], ["LIMIT", 1]]
18:03:20 web.1     |   ↳ app/controllers/api/base_controller.rb:58:in `current_resource_owner'
18:03:20 web.1     |   SessionActivation Load (0.1ms)  SELECT "session_activations".* FROM "session_activations" WHERE "session_activations"."session_id" = $1 LIMIT $2  [["session_id", "344f7dc54308ebb2fabaacb4f95eec2d"], ["LIMIT", 1]]
18:03:20 web.1     |   ↳ app/controllers/application_controller.rb:156:in `current_session'
18:03:20 web.1     |   Account Load (0.2ms)  SELECT "accounts"."id", "accounts"."username", "accounts"."domain", "accounts"."private_key", "accounts"."public_key", "accounts"."created_at", "accounts"."updated_at", "accounts"."note", "accounts"."display_name", "accounts"."uri", "accounts"."url", "accounts"."avatar_file_name", "accounts"."avatar_content_type", "accounts"."avatar_file_size", "accounts"."avatar_updated_at", "accounts"."header_file_name", "accounts"."header_content_type", "accounts"."header_file_size", "accounts"."header_updated_at", "accounts"."avatar_remote_url", "accounts"."locked", "accounts"."header_remote_url", "accounts"."last_webfingered_at", "accounts"."inbox_url", "accounts"."outbox_url", "accounts"."shared_inbox_url", "accounts"."followers_url", "accounts"."protocol", "accounts"."memorial", "accounts"."moved_to_account_id", "accounts"."featured_collection_url", "accounts"."fields", "accounts"."actor_type", "accounts"."discoverable", "accounts"."also_known_as", "accounts"."silenced_at", "accounts"."suspended_at", "accounts"."hide_collections", "accounts"."avatar_storage_schema_version", "accounts"."header_storage_schema_version", "accounts"."devices_url", "accounts"."suspension_origin", "accounts"."sensitized_at", "accounts"."trendable", "accounts"."reviewed_at", "accounts"."requested_review_at", "accounts"."indexable" FROM "accounts" WHERE "accounts"."id" = $1 LIMIT $2  [["id", 112136525779164011], ["LIMIT", 1]]
18:03:20 web.1     |   ↳ app/controllers/api/base_controller.rb:72:in `require_not_suspended!'
18:03:20 web.1     | Cache read: rails_settings_cached/e23eceea1dbbecf09d779eb1d9007c03/trends ({:compress=>true, :compress_threshold=>1024})
18:03:20 web.1     | Cache generate: rails_settings_cached/e23eceea1dbbecf09d779eb1d9007c03/trends ({:compress=>true, :compress_threshold=>1024})
18:03:20 web.1     |   Setting Load (0.1ms)  SELECT "settings".* FROM "settings" WHERE "settings"."thing_type" IS NULL AND "settings"."thing_id" IS NULL AND "settings"."var" = $1 LIMIT $2  [["var", "trends"], ["LIMIT", 1]]
18:03:20 web.1     |   ↳ app/models/setting.rb:80:in `block in []'
18:03:20 web.1     | Cache write: rails_settings_cached/e23eceea1dbbecf09d779eb1d9007c03/trends ({:compress=>true, :compress_threshold=>1024})
18:03:20 web.1     | Completed 200 OK in 64ms (Views: 0.2ms | ActiveRecord: 0.4ms | Allocations: 3539)
18:03:20 web.1     | 
18:03:20 web.1     | 
18:03:20 web.1     |   Account Load (0.2ms)  SELECT "accounts"."id", "accounts"."username", "accounts"."domain", "accounts"."private_key", "accounts"."public_key", "accounts"."created_at", "accounts"."updated_at", "accounts"."note", "accounts"."display_name", "accounts"."uri", "accounts"."url", "accounts"."avatar_file_name", "accounts"."avatar_content_type", "accounts"."avatar_file_size", "accounts"."avatar_updated_at", "accounts"."header_file_name", "accounts"."header_content_type", "accounts"."header_file_size", "accounts"."header_updated_at", "accounts"."avatar_remote_url", "accounts"."locked", "accounts"."header_remote_url", "accounts"."last_webfingered_at", "accounts"."inbox_url", "accounts"."outbox_url", "accounts"."shared_inbox_url", "accounts"."followers_url", "accounts"."protocol", "accounts"."memorial", "accounts"."moved_to_account_id", "accounts"."featured_collection_url", "accounts"."fields", "accounts"."actor_type", "accounts"."discoverable", "accounts"."also_known_as", "accounts"."silenced_at", "accounts"."suspended_at", "accounts"."hide_collections", "accounts"."avatar_storage_schema_version", "accounts"."header_storage_schema_version", "accounts"."devices_url", "accounts"."suspension_origin", "accounts"."sensitized_at", "accounts"."trendable", "accounts"."reviewed_at", "accounts"."requested_review_at", "accounts"."indexable" FROM "accounts" WHERE "accounts"."id" = $1 LIMIT $2  [["id", 112136525779164011], ["LIMIT", 1]]
18:03:20 web.1     |   ↳ app/controllers/api/base_controller.rb:72:in `require_not_suspended!'
18:03:20 web.1     | Unpermitted parameters: :q, :resolve, :limit. Context: { controller: Api::V2::SearchController, action: index, request: #<ActionDispatch::Request:0x00007f2c27aa1180>, params: {"q"=>"@chef@cha-cu.it", "resolve"=>"true", "limit"=>"11", "controller"=>"api/v2/search", "action"=>"index"} }
18:03:20 web.1     |   DomainBlock Load (0.3ms)  SELECT "domain_blocks".* FROM "domain_blocks" WHERE "domain_blocks"."domain" IN ($1, $2) ORDER BY CHAR_LENGTH(domain) DESC LIMIT $3  [["domain", "cha-cu.it"], ["domain", "it"], ["LIMIT", 1]]
18:03:20 web.1     |   ↳ app/models/domain_block.rb:73:in `rule_for'
18:03:20 web.1     |   Account Load (0.4ms)  SELECT "accounts"."id", "accounts"."username", "accounts"."domain", "accounts"."private_key", "accounts"."public_key", "accounts"."created_at", "accounts"."updated_at", "accounts"."note", "accounts"."display_name", "accounts"."uri", "accounts"."url", "accounts"."avatar_file_name", "accounts"."avatar_content_type", "accounts"."avatar_file_size", "accounts"."avatar_updated_at", "accounts"."header_file_name", "accounts"."header_content_type", "accounts"."header_file_size", "accounts"."header_updated_at", "accounts"."avatar_remote_url", "accounts"."locked", "accounts"."header_remote_url", "accounts"."last_webfingered_at", "accounts"."inbox_url", "accounts"."outbox_url", "accounts"."shared_inbox_url", "accounts"."followers_url", "accounts"."protocol", "accounts"."memorial", "accounts"."moved_to_account_id", "accounts"."featured_collection_url", "accounts"."fields", "accounts"."actor_type", "accounts"."discoverable", "accounts"."also_known_as", "accounts"."silenced_at", "accounts"."suspended_at", "accounts"."hide_collections", "accounts"."avatar_storage_schema_version", "accounts"."header_storage_schema_version", "accounts"."devices_url", "accounts"."suspension_origin", "accounts"."sensitized_at", "accounts"."trendable", "accounts"."reviewed_at", "accounts"."requested_review_at", "accounts"."indexable" FROM "accounts" WHERE LOWER("accounts"."username") != '' AND LOWER("accounts"."username") = 'chef' AND LOWER("accounts"."domain") = 'cha-cu.it' ORDER BY "accounts"."id" ASC LIMIT $1  [["LIMIT", 1]]
18:03:20 web.1     |   ↳ app/models/concerns/account/finder_concern.rb:41:in `account'
18:03:21 web.1     | [httplog] GET https://cha-cu.it/.well-known/webfinger?resource=acct:chef@cha-cu.it completed with status code 200 in 0.372209 seconds
18:03:21 web.1     |   CACHE DomainBlock Load (0.0ms)  SELECT "domain_blocks".* FROM "domain_blocks" WHERE "domain_blocks"."domain" IN ($1, $2) ORDER BY CHAR_LENGTH(domain) DESC LIMIT $3  [["domain", "cha-cu.it"], ["domain", "it"], ["LIMIT", 1]]
18:03:21 web.1     |   ↳ app/models/domain_block.rb:73:in `rule_for'
18:03:21 web.1     |   CACHE Account Load (0.0ms)  SELECT "accounts"."id", "accounts"."username", "accounts"."domain", "accounts"."private_key", "accounts"."public_key", "accounts"."created_at", "accounts"."updated_at", "accounts"."note", "accounts"."display_name", "accounts"."uri", "accounts"."url", "accounts"."avatar_file_name", "accounts"."avatar_content_type", "accounts"."avatar_file_size", "accounts"."avatar_updated_at", "accounts"."header_file_name", "accounts"."header_content_type", "accounts"."header_file_size", "accounts"."header_updated_at", "accounts"."avatar_remote_url", "accounts"."locked", "accounts"."header_remote_url", "accounts"."last_webfingered_at", "accounts"."inbox_url", "accounts"."outbox_url", "accounts"."shared_inbox_url", "accounts"."followers_url", "accounts"."protocol", "accounts"."memorial", "accounts"."moved_to_account_id", "accounts"."featured_collection_url", "accounts"."fields", "accounts"."actor_type", "accounts"."discoverable", "accounts"."also_known_as", "accounts"."silenced_at", "accounts"."suspended_at", "accounts"."hide_collections", "accounts"."avatar_storage_schema_version", "accounts"."header_storage_schema_version", "accounts"."devices_url", "accounts"."suspension_origin", "accounts"."sensitized_at", "accounts"."trendable", "accounts"."reviewed_at", "accounts"."requested_review_at", "accounts"."indexable" FROM "accounts" WHERE LOWER("accounts"."username") != '' AND LOWER("accounts"."username") = 'chef' AND LOWER("accounts"."domain") = 'cha-cu.it' ORDER BY "accounts"."id" ASC LIMIT $1  [["LIMIT", 1]]
18:03:21 web.1     |   ↳ app/models/concerns/account/finder_concern.rb:41:in `account'
18:03:21 web.1     |   CACHE DomainBlock Load (0.0ms)  SELECT "domain_blocks".* FROM "domain_blocks" WHERE "domain_blocks"."domain" IN ($1, $2) ORDER BY CHAR_LENGTH(domain) DESC LIMIT $3  [["domain", "cha-cu.it"], ["domain", "it"], ["LIMIT", 1]]
18:03:21 web.1     |   ↳ app/models/domain_block.rb:73:in `rule_for'
18:03:21 web.1     |   Account Load (0.3ms)  SELECT "accounts"."id", "accounts"."username", "accounts"."domain", "accounts"."private_key", "accounts"."public_key", "accounts"."created_at", "accounts"."updated_at", "accounts"."note", "accounts"."display_name", "accounts"."uri", "accounts"."url", "accounts"."avatar_file_name", "accounts"."avatar_content_type", "accounts"."avatar_file_size", "accounts"."avatar_updated_at", "accounts"."header_file_name", "accounts"."header_content_type", "accounts"."header_file_size", "accounts"."header_updated_at", "accounts"."avatar_remote_url", "accounts"."locked", "accounts"."header_remote_url", "accounts"."last_webfingered_at", "accounts"."inbox_url", "accounts"."outbox_url", "accounts"."shared_inbox_url", "accounts"."followers_url", "accounts"."protocol", "accounts"."memorial", "accounts"."moved_to_account_id", "accounts"."featured_collection_url", "accounts"."fields", "accounts"."actor_type", "accounts"."discoverable", "accounts"."also_known_as", "accounts"."silenced_at", "accounts"."suspended_at", "accounts"."hide_collections", "accounts"."avatar_storage_schema_version", "accounts"."header_storage_schema_version", "accounts"."devices_url", "accounts"."suspension_origin", "accounts"."sensitized_at", "accounts"."trendable", "accounts"."reviewed_at", "accounts"."requested_review_at", "accounts"."indexable" FROM "accounts" WHERE "accounts"."id" = $1 LIMIT $2  [["id", -99], ["LIMIT", 1]]
18:03:21 web.1     |   ↳ app/models/concerns/account/finder_concern.rb:16:in `representative'
18:03:21 web.1     | [httplog] GET https://cha-cu.it/users/chef completed with status code 200 in 0.343425 seconds
18:03:21 web.1     | Fetching actor https://cha-cu.it/users/chef failed: Error fetching actor JSON at https://cha-cu.it/users/chef
18:03:21 web.1     |   Follow Pluck (0.2ms)  SELECT "follows"."target_account_id" FROM "follows" WHERE "follows"."account_id" = $1  [["account_id", 112136525779164011]]
18:03:21 web.1     |   ↳ app/services/account_search_service.rb:120:in `following_ids'
18:03:21 web.1     | [httplog] POST http://localhost:9200/accounts/_search completed with status code 200 in 0.003074 seconds
18:03:21 web.1     |   AccountsIndex Search (6.2ms) {:index=>["accounts"], :body=>{:size=>11, :from=>0, :query=>{:bool=>{:must=>{:function_score=>{:query=>{:bool=>{:must=>[{:multi_match=>{:query=>"chef@cha-cu.it", :type=>"most_fields", :fields=>["username^2", "display_name^2", "text", "text.*"], :operator=>"and"}}], :must_not=>[]}}, :functions=>[{:script_score=>{:script=>{:source=>"(Math.max(doc['followers_count'].value, 0) + 0.0) / (Math.max(doc['followers_count'].value, 0) + Math.max(doc['following_count'].value, 0) + 1)"}}}, {:script_score=>{:script=>{:source=>"(Math.max(doc['followers_count'].value, 0) / (Math.max(doc['followers_count'].value, 0) + 1))"}}}, {:gauss=>{:last_status_at=>{:scale=>"30d", :offset=>"30d", :decay=>0.3}}}]}}, :should=>[{:terms=>{:id=>[112136525779164011], :boost=>100}}]}}}}
18:03:21 web.1     | [httplog] POST http://localhost:9200/public_statuses,statuses/_search completed with status code 200 in 0.003885 seconds
18:03:21 web.1     |   [PublicStatusesIndex, StatusesIndex] Search (4.5ms) {:index=>["public_statuses", "statuses"], :body=>{:collapse=>{"field"=>:id}, :sort=>[{"id"=>{:order=>:desc}}], :size=>11, :from=>0, :query=>{:bool=>{:must=>{:multi_match=>{:type=>"most_fields", :query=>"@chef@cha-cu.it", :fields=>["text", "text.stemmed"], :operator=>"and"}}, :filter=>{:bool=>{:should=>[{:term=>{:_index=>"public_statuses"}}, {:bool=>{:must=>[{:term=>{:_index=>"statuses"}}, {:term=>{:searchable_by=>112136525779164011}}]}}], :minimum_should_match=>1}}}}}}
18:03:21 web.1     | [httplog] POST http://localhost:9200/tags/_search completed with status code 404 in 0.001043 seconds
18:03:21 web.1     |   TagsIndex Search (1.8ms) {:index=>["tags"], :body=>{:size=>11, :from=>0, :query=>{:function_score=>{:query=>{:multi_match=>{:query=>"@chef@cha-cu.it", :fields=>["name.edge_ngram", "name"], :type=>"most_fields", :operator=>"and"}}, :functions=>[{:field_value_factor=>{:field=>"usage", :modifier=>"log2p", :missing=>0}}, {:gauss=>{:last_status_at=>{:scale=>"7d", :offset=>"14d", :decay=>0.5}}}], :boost_mode=>"multiply"}}}}
18:03:21 web.1     |   Tag Load (0.2ms)  SELECT "tags".* FROM "tags" WHERE LOWER("tags"."name") = LOWER('chefchacuit') ORDER BY "tags"."id" ASC LIMIT $1  [["LIMIT", 1]]
18:03:21 web.1     |   ↳ app/models/tag.rb:141:in `find_normalized'
18:03:21 web.1     | Completed 200 OK in 845ms (Views: 0.4ms | ActiveRecord: 3.9ms | Allocations: 42789)
18:03:21 web.1     | 
18:03:21 web.1     | 

Et ça ne marche pas non plus. :(
La même erreur que moi (erreur très générique, va falloir investigué du Ruby je pense …). Mais c’est possiblement car tu regardes Netflix car cha-cu.it est effectivement en PLS.

$ httpx https://cha-cu.it/users/chef
ConnectTimeout: _ssl.c:989: The handshake operation timed out

J’arrive à faire marcher la requête si je la fais plusieurs fois (mais pas sur mastodon.local).


Par-contre, si je fais recherche @ache@mastodon.xyz ou

J’ai ça (qui est bien plus long):

18:06:12 web.1     | Started GET "/api/v2/search?q=%40capitoledulibre%40framapiaf.org&resolve=true&limit=11" for 10.0.2.2 at 2024-03-22 18:06:12 +0000
18:06:12 web.1     | Started GET "/api/v1/trends/tags" for 10.0.2.2 at 2024-03-22 18:06:12 +0000
18:06:12 web.1     | Cache read: blocked_ips ({:compress=>true, :compress_threshold=>1024})
18:06:12 web.1     | Cache read: blocked_ips ({:compress=>true, :compress_threshold=>1024})
18:06:12 web.1     | Cache generate: blocked_ips ({:compress=>true, :compress_threshold=>1024})
18:06:12 web.1     | Cache generate: blocked_ips ({:compress=>true, :compress_threshold=>1024})
18:06:12 web.1     |   IpBlock Pluck (0.1ms)  SELECT "ip_blocks"."ip" FROM "ip_blocks" WHERE "ip_blocks"."severity" = $1  [["severity", 9999]]
18:06:12 web.1     |   ↳ app/models/ip_block.rb:39:in `block in blocked?'
18:06:12 web.1     | Cache write: blocked_ips ({:compress=>true, :compress_threshold=>1024})
18:06:12 web.1     |   Doorkeeper::AccessToken Load (0.1ms)  SELECT "oauth_access_tokens".* FROM "oauth_access_tokens" WHERE "oauth_access_tokens"."token" = $1 LIMIT $2  [["token", "[FILTERED]"], ["LIMIT", 1]]
18:06:12 web.1     |   IpBlock Pluck (0.1ms)  SELECT "ip_blocks"."ip" FROM "ip_blocks" WHERE "ip_blocks"."severity" = $1  [["severity", 9999]]
18:06:12 web.1     |   ↳ config/initializers/rack_attack.rb:10:in `authenticated_token'
18:06:12 web.1     |   ↳ app/models/ip_block.rb:39:in `block in blocked?'
18:06:12 web.1     | Cache write: blocked_ips ({:compress=>true, :compress_threshold=>1024})
18:06:12 web.1     | Cache write: rack::attack:5703769:throttle_authenticated_api:1 ({:compress=>true, :compress_threshold=>1024, :expires_in=>229})
18:06:12 web.1     | Cache write: rack::attack:5703769:throttle_per_token_api:5 ({:compress=>true, :compress_threshold=>1024, :expires_in=>229})
18:06:12 web.1     |   Doorkeeper::AccessToken Load (0.1ms)  SELECT "oauth_access_tokens".* FROM "oauth_access_tokens" WHERE "oauth_access_tokens"."token" = $1 LIMIT $2  [["token", "[FILTERED]"], ["LIMIT", 1]]
18:06:12 web.1     |   ↳ config/initializers/rack_attack.rb:10:in `authenticated_token'
18:06:12 web.1     | Processing by Api::V1::Trends::TagsController#index as HTML
18:06:12 web.1     | Cache write: rack::attack:5703769:throttle_authenticated_api:1 ({:compress=>true, :compress_threshold=>1024, :expires_in=>229})
18:06:12 web.1     | Cache write: rack::attack:5703769:throttle_per_token_api:5 ({:compress=>true, :compress_threshold=>1024, :expires_in=>229})
18:06:12 web.1     |   CACHE Doorkeeper::AccessToken Load (0.0ms)  SELECT "oauth_access_tokens".* FROM "oauth_access_tokens" WHERE "oauth_access_tokens"."token" = $1 LIMIT $2  [["token", "[FILTERED]"], ["LIMIT", 1]]
18:06:12 web.1     |   ↳ app/controllers/api/base_controller.rb:58:in `current_resource_owner'
18:06:12 web.1     | Processing by Api::V2::SearchController#index as HTML
18:06:12 web.1     |   Parameters: {"q"=>"@capitoledulibre@framapiaf.org", "resolve"=>"true", "limit"=>"11"}
18:06:12 web.1     |   User Load (0.3ms)  SELECT "users"."id", "users"."email", "users"."created_at", "users"."updated_at", "users"."encrypted_password", "users"."reset_password_token", "users"."reset_password_sent_at", "users"."sign_in_count", "users"."current_sign_in_at", "users"."last_sign_in_at", "users"."confirmation_token", "users"."confirmed_at", "users"."confirmation_sent_at", "users"."unconfirmed_email", "users"."locale", "users"."encrypted_otp_secret", "users"."encrypted_otp_secret_iv", "users"."encrypted_otp_secret_salt", "users"."consumed_timestep", "users"."otp_required_for_login", "users"."last_emailed_at", "users"."otp_backup_codes", "users"."account_id", "users"."disabled", "users"."invite_id", "users"."chosen_languages", "users"."created_by_application_id", "users"."approved", "users"."sign_in_token", "users"."sign_in_token_sent_at", "users"."webauthn_id", "users"."sign_up_ip", "users"."role_id", "users"."settings", "users"."time_zone" FROM "users" WHERE "users"."id" = $1 LIMIT $2  [["id", 1], ["LIMIT", 1]]
18:06:12 web.1     |   CACHE Doorkeeper::AccessToken Load (0.1ms)  SELECT "oauth_access_tokens".* FROM "oauth_access_tokens" WHERE "oauth_access_tokens"."token" = $1 LIMIT $2  [["token", "[FILTERED]"], ["LIMIT", 1]]
18:06:12 web.1     |   ↳ app/controllers/api/base_controller.rb:58:in `current_resource_owner'
18:06:12 web.1     |   ↳ app/controllers/api/base_controller.rb:58:in `current_resource_owner'
18:06:12 web.1     |   User Load (0.2ms)  SELECT "users"."id", "users"."email", "users"."created_at", "users"."updated_at", "users"."encrypted_password", "users"."reset_password_token", "users"."reset_password_sent_at", "users"."sign_in_count", "users"."current_sign_in_at", "users"."last_sign_in_at", "users"."confirmation_token", "users"."confirmed_at", "users"."confirmation_sent_at", "users"."unconfirmed_email", "users"."locale", "users"."encrypted_otp_secret", "users"."encrypted_otp_secret_iv", "users"."encrypted_otp_secret_salt", "users"."consumed_timestep", "users"."otp_required_for_login", "users"."last_emailed_at", "users"."otp_backup_codes", "users"."account_id", "users"."disabled", "users"."invite_id", "users"."chosen_languages", "users"."created_by_application_id", "users"."approved", "users"."sign_in_token", "users"."sign_in_token_sent_at", "users"."webauthn_id", "users"."sign_up_ip", "users"."role_id", "users"."settings", "users"."time_zone" FROM "users" WHERE "users"."id" = $1 LIMIT $2  [["id", 1], ["LIMIT", 1]]
18:06:12 web.1     |   ↳ app/controllers/api/base_controller.rb:58:in `current_resource_owner'
18:06:12 web.1     |   SessionActivation Load (0.1ms)  SELECT "session_activations".* FROM "session_activations" WHERE "session_activations"."session_id" = $1 LIMIT $2  [["session_id", "344f7dc54308ebb2fabaacb4f95eec2d"], ["LIMIT", 1]]
18:06:12 web.1     |   ↳ app/controllers/application_controller.rb:156:in `current_session'
18:06:12 web.1     |   SessionActivation Load (0.1ms)  SELECT "session_activations".* FROM "session_activations" WHERE "session_activations"."session_id" = $1 LIMIT $2  [["session_id", "344f7dc54308ebb2fabaacb4f95eec2d"], ["LIMIT", 1]]
18:06:12 web.1     |   ↳ app/controllers/application_controller.rb:156:in `current_session'
18:06:12 web.1     |   Account Load (0.2ms)  SELECT "accounts"."id", "accounts"."username", "accounts"."domain", "accounts"."private_key", "accounts"."public_key", "accounts"."created_at", "accounts"."updated_at", "accounts"."note", "accounts"."display_name", "accounts"."uri", "accounts"."url", "accounts"."avatar_file_name", "accounts"."avatar_content_type", "accounts"."avatar_file_size", "accounts"."avatar_updated_at", "accounts"."header_file_name", "accounts"."header_content_type", "accounts"."header_file_size", "accounts"."header_updated_at", "accounts"."avatar_remote_url", "accounts"."locked", "accounts"."header_remote_url", "accounts"."last_webfingered_at", "accounts"."inbox_url", "accounts"."outbox_url", "accounts"."shared_inbox_url", "accounts"."followers_url", "accounts"."protocol", "accounts"."memorial", "accounts"."moved_to_account_id", "accounts"."featured_collection_url", "accounts"."fields", "accounts"."actor_type", "accounts"."discoverable", "accounts"."also_known_as", "accounts"."silenced_at", "accounts"."suspended_at", "accounts"."hide_collections", "accounts"."avatar_storage_schema_version", "accounts"."header_storage_schema_version", "accounts"."devices_url", "accounts"."suspension_origin", "accounts"."sensitized_at", "accounts"."trendable", "accounts"."reviewed_at", "accounts"."requested_review_at", "accounts"."indexable" FROM "accounts" WHERE "accounts"."id" = $1 LIMIT $2  [["id", 112136525779164011], ["LIMIT", 1]]
18:06:12 web.1     |   ↳ app/controllers/api/base_controller.rb:72:in `require_not_suspended!'
18:06:12 web.1     | Cache read: rails_settings_cached/e23eceea1dbbecf09d779eb1d9007c03/trends ({:compress=>true, :compress_threshold=>1024})
18:06:12 web.1     | Cache generate: rails_settings_cached/e23eceea1dbbecf09d779eb1d9007c03/trends ({:compress=>true, :compress_threshold=>1024})
18:06:12 web.1     |   Account Load (0.3ms)  SELECT "accounts"."id", "accounts"."username", "accounts"."domain", "accounts"."private_key", "accounts"."public_key", "accounts"."created_at", "accounts"."updated_at", "accounts"."note", "accounts"."display_name", "accounts"."uri", "accounts"."url", "accounts"."avatar_file_name", "accounts"."avatar_content_type", "accounts"."avatar_file_size", "accounts"."avatar_updated_at", "accounts"."header_file_name", "accounts"."header_content_type", "accounts"."header_file_size", "accounts"."header_updated_at", "accounts"."avatar_remote_url", "accounts"."locked", "accounts"."header_remote_url", "accounts"."last_webfingered_at", "accounts"."inbox_url", "accounts"."outbox_url", "accounts"."shared_inbox_url", "accounts"."followers_url", "accounts"."protocol", "accounts"."memorial", "accounts"."moved_to_account_id", "accounts"."featured_collection_url", "accounts"."fields", "accounts"."actor_type", "accounts"."discoverable", "accounts"."also_known_as", "accounts"."silenced_at", "accounts"."suspended_at", "accounts"."hide_collections", "accounts"."avatar_storage_schema_version", "accounts"."header_storage_schema_version", "accounts"."devices_url", "accounts"."suspension_origin", "accounts"."sensitized_at", "accounts"."trendable", "accounts"."reviewed_at", "accounts"."requested_review_at", "accounts"."indexable" FROM "accounts" WHERE "accounts"."id" = $1 LIMIT $2  [["id", 112136525779164011], ["LIMIT", 1]]
18:06:12 web.1     |   ↳ app/controllers/api/base_controller.rb:72:in `require_not_suspended!'
18:06:12 web.1     |   Setting Load (0.1ms)  SELECT "settings".* FROM "settings" WHERE "settings"."thing_type" IS NULL AND "settings"."thing_id" IS NULL AND "settings"."var" = $1 LIMIT $2  [["var", "trends"], ["LIMIT", 1]]
18:06:12 web.1     |   ↳ app/models/setting.rb:80:in `block in []'
18:06:12 web.1     | Cache write: rails_settings_cached/e23eceea1dbbecf09d779eb1d9007c03/trends ({:compress=>true, :compress_threshold=>1024})
18:06:12 web.1     | Unpermitted parameters: :q, :resolve, :limit. Context: { controller: Api::V2::SearchController, action: index, request: #<ActionDispatch::Request:0x00007f2c540a47e0>, params: {"q"=>"@capitoledulibre@framapiaf.org", "resolve"=>"true", "limit"=>"11", "controller"=>"api/v2/search", "action"=>"index"} }
18:06:12 web.1     | Completed 200 OK in 60ms (Views: 0.2ms | ActiveRecord: 0.6ms | Allocations: 3551)
18:06:12 web.1     | 
18:06:12 web.1     | 
18:06:12 web.1     |   DomainBlock Load (0.5ms)  SELECT "domain_blocks".* FROM "domain_blocks" WHERE "domain_blocks"."domain" IN ($1, $2) ORDER BY CHAR_LENGTH(domain) DESC LIMIT $3  [["domain", "framapiaf.org"], ["domain", "org"], ["LIMIT", 1]]
18:06:12 web.1     |   ↳ app/models/domain_block.rb:73:in `rule_for'
18:06:12 web.1     |   Account Load (0.2ms)  SELECT "accounts"."id", "accounts"."username", "accounts"."domain", "accounts"."private_key", "accounts"."public_key", "accounts"."created_at", "accounts"."updated_at", "accounts"."note", "accounts"."display_name", "accounts"."uri", "accounts"."url", "accounts"."avatar_file_name", "accounts"."avatar_content_type", "accounts"."avatar_file_size", "accounts"."avatar_updated_at", "accounts"."header_file_name", "accounts"."header_content_type", "accounts"."header_file_size", "accounts"."header_updated_at", "accounts"."avatar_remote_url", "accounts"."locked", "accounts"."header_remote_url", "accounts"."last_webfingered_at", "accounts"."inbox_url", "accounts"."outbox_url", "accounts"."shared_inbox_url", "accounts"."followers_url", "accounts"."protocol", "accounts"."memorial", "accounts"."moved_to_account_id", "accounts"."featured_collection_url", "accounts"."fields", "accounts"."actor_type", "accounts"."discoverable", "accounts"."also_known_as", "accounts"."silenced_at", "accounts"."suspended_at", "accounts"."hide_collections", "accounts"."avatar_storage_schema_version", "accounts"."header_storage_schema_version", "accounts"."devices_url", "accounts"."suspension_origin", "accounts"."sensitized_at", "accounts"."trendable", "accounts"."reviewed_at", "accounts"."requested_review_at", "accounts"."indexable" FROM "accounts" WHERE LOWER("accounts"."username") != '' AND LOWER("accounts"."username") = 'capitoledulibre' AND LOWER("accounts"."domain") = 'framapiaf.org' ORDER BY "accounts"."id" ASC LIMIT $1  [["LIMIT", 1]]
18:06:12 web.1     |   ↳ app/models/concerns/account/finder_concern.rb:41:in `account'
18:06:12 web.1     | [httplog] GET https://framapiaf.org/.well-known/webfinger?resource=acct:capitoledulibre@framapiaf.org completed with status code 200 in 0.107627 seconds
18:06:12 web.1     |   CACHE DomainBlock Load (0.0ms)  SELECT "domain_blocks".* FROM "domain_blocks" WHERE "domain_blocks"."domain" IN ($1, $2) ORDER BY CHAR_LENGTH(domain) DESC LIMIT $3  [["domain", "framapiaf.org"], ["domain", "org"], ["LIMIT", 1]]
18:06:12 web.1     |   ↳ app/models/domain_block.rb:73:in `rule_for'
18:06:12 web.1     |   CACHE Account Load (0.0ms)  SELECT "accounts"."id", "accounts"."username", "accounts"."domain", "accounts"."private_key", "accounts"."public_key", "accounts"."created_at", "accounts"."updated_at", "accounts"."note", "accounts"."display_name", "accounts"."uri", "accounts"."url", "accounts"."avatar_file_name", "accounts"."avatar_content_type", "accounts"."avatar_file_size", "accounts"."avatar_updated_at", "accounts"."header_file_name", "accounts"."header_content_type", "accounts"."header_file_size", "accounts"."header_updated_at", "accounts"."avatar_remote_url", "accounts"."locked", "accounts"."header_remote_url", "accounts"."last_webfingered_at", "accounts"."inbox_url", "accounts"."outbox_url", "accounts"."shared_inbox_url", "accounts"."followers_url", "accounts"."protocol", "accounts"."memorial", "accounts"."moved_to_account_id", "accounts"."featured_collection_url", "accounts"."fields", "accounts"."actor_type", "accounts"."discoverable", "accounts"."also_known_as", "accounts"."silenced_at", "accounts"."suspended_at", "accounts"."hide_collections", "accounts"."avatar_storage_schema_version", "accounts"."header_storage_schema_version", "accounts"."devices_url", "accounts"."suspension_origin", "accounts"."sensitized_at", "accounts"."trendable", "accounts"."reviewed_at", "accounts"."requested_review_at", "accounts"."indexable" FROM "accounts" WHERE LOWER("accounts"."username") != '' AND LOWER("accounts"."username") = 'capitoledulibre' AND LOWER("accounts"."domain") = 'framapiaf.org' ORDER BY "accounts"."id" ASC LIMIT $1  [["LIMIT", 1]]
18:06:12 web.1     |   ↳ app/models/concerns/account/finder_concern.rb:41:in `account'
18:06:12 web.1     |   CACHE DomainBlock Load (0.0ms)  SELECT "domain_blocks".* FROM "domain_blocks" WHERE "domain_blocks"."domain" IN ($1, $2) ORDER BY CHAR_LENGTH(domain) DESC LIMIT $3  [["domain", "framapiaf.org"], ["domain", "org"], ["LIMIT", 1]]
18:06:12 web.1     |   ↳ app/models/domain_block.rb:73:in `rule_for'
18:06:12 web.1     |   Account Load (0.4ms)  SELECT "accounts"."id", "accounts"."username", "accounts"."domain", "accounts"."private_key", "accounts"."public_key", "accounts"."created_at", "accounts"."updated_at", "accounts"."note", "accounts"."display_name", "accounts"."uri", "accounts"."url", "accounts"."avatar_file_name", "accounts"."avatar_content_type", "accounts"."avatar_file_size", "accounts"."avatar_updated_at", "accounts"."header_file_name", "accounts"."header_content_type", "accounts"."header_file_size", "accounts"."header_updated_at", "accounts"."avatar_remote_url", "accounts"."locked", "accounts"."header_remote_url", "accounts"."last_webfingered_at", "accounts"."inbox_url", "accounts"."outbox_url", "accounts"."shared_inbox_url", "accounts"."followers_url", "accounts"."protocol", "accounts"."memorial", "accounts"."moved_to_account_id", "accounts"."featured_collection_url", "accounts"."fields", "accounts"."actor_type", "accounts"."discoverable", "accounts"."also_known_as", "accounts"."silenced_at", "accounts"."suspended_at", "accounts"."hide_collections", "accounts"."avatar_storage_schema_version", "accounts"."header_storage_schema_version", "accounts"."devices_url", "accounts"."suspension_origin", "accounts"."sensitized_at", "accounts"."trendable", "accounts"."reviewed_at", "accounts"."requested_review_at", "accounts"."indexable" FROM "accounts" WHERE "accounts"."id" = $1 LIMIT $2  [["id", -99], ["LIMIT", 1]]
18:06:12 web.1     |   ↳ app/models/concerns/account/finder_concern.rb:16:in `representative'
18:06:12 web.1     | [httplog] GET https://framapiaf.org/users/capitoledulibre completed with status code 200 in 0.06123 seconds
18:06:12 web.1     | [httplog] GET https://framapiaf.org/.well-known/webfinger?resource=acct:capitoledulibre@framapiaf.org completed with status code 200 in 0.05922 seconds
18:06:12 web.1     |   CACHE DomainBlock Load (0.0ms)  SELECT "domain_blocks".* FROM "domain_blocks" WHERE "domain_blocks"."domain" IN ($1, $2) ORDER BY CHAR_LENGTH(domain) DESC LIMIT $3  [["domain", "framapiaf.org"], ["domain", "org"], ["LIMIT", 1]]
18:06:12 web.1     |   ↳ app/models/domain_block.rb:73:in `rule_for'
18:06:12 web.1     |   CACHE Account Load (0.0ms)  SELECT "accounts"."id", "accounts"."username", "accounts"."domain", "accounts"."private_key", "accounts"."public_key", "accounts"."created_at", "accounts"."updated_at", "accounts"."note", "accounts"."display_name", "accounts"."uri", "accounts"."url", "accounts"."avatar_file_name", "accounts"."avatar_content_type", "accounts"."avatar_file_size", "accounts"."avatar_updated_at", "accounts"."header_file_name", "accounts"."header_content_type", "accounts"."header_file_size", "accounts"."header_updated_at", "accounts"."avatar_remote_url", "accounts"."locked", "accounts"."header_remote_url", "accounts"."last_webfingered_at", "accounts"."inbox_url", "accounts"."outbox_url", "accounts"."shared_inbox_url", "accounts"."followers_url", "accounts"."protocol", "accounts"."memorial", "accounts"."moved_to_account_id", "accounts"."featured_collection_url", "accounts"."fields", "accounts"."actor_type", "accounts"."discoverable", "accounts"."also_known_as", "accounts"."silenced_at", "accounts"."suspended_at", "accounts"."hide_collections", "accounts"."avatar_storage_schema_version", "accounts"."header_storage_schema_version", "accounts"."devices_url", "accounts"."suspension_origin", "accounts"."sensitized_at", "accounts"."trendable", "accounts"."reviewed_at", "accounts"."requested_review_at", "accounts"."indexable" FROM "accounts" WHERE LOWER("accounts"."username") != '' AND LOWER("accounts"."username") = 'capitoledulibre' AND LOWER("accounts"."domain") = 'framapiaf.org' ORDER BY "accounts"."id" ASC LIMIT $1  [["LIMIT", 1]]
18:06:12 web.1     |   ↳ app/models/concerns/account/finder_concern.rb:41:in `account'
18:06:12 web.1     |   CACHE DomainBlock Load (0.0ms)  SELECT "domain_blocks".* FROM "domain_blocks" WHERE "domain_blocks"."domain" IN ($1, $2) ORDER BY CHAR_LENGTH(domain) DESC LIMIT $3  [["domain", "framapiaf.org"], ["domain", "org"], ["LIMIT", 1]]
18:06:12 web.1     |   ↳ app/models/domain_block.rb:73:in `rule_for'
18:06:12 web.1     |   TRANSACTION (0.1ms)  BEGIN
18:06:12 web.1     |   ↳ app/validators/unique_username_validator.rb:15:in `validate'
18:06:12 web.1     |   Account Exists? (0.8ms)  SELECT 1 AS one FROM "accounts" WHERE LOWER("accounts"."username") = 'capitoledulibre' AND LOWER("accounts"."domain") = 'framapiaf.org' LIMIT $1  [["LIMIT", 1]]
18:06:12 web.1     |   ↳ app/validators/unique_username_validator.rb:15:in `validate'
18:06:12 web.1     |   Account Create (1.3ms)  INSERT INTO "accounts" ("username", "domain", "private_key", "public_key", "created_at", "updated_at", "note", "display_name", "uri", "url", "avatar_file_name", "avatar_content_type", "avatar_file_size", "avatar_updated_at", "header_file_name", "header_content_type", "header_file_size", "header_updated_at", "avatar_remote_url", "locked", "header_remote_url", "last_webfingered_at", "inbox_url", "outbox_url", "shared_inbox_url", "followers_url", "protocol", "memorial", "moved_to_account_id", "featured_collection_url", "fields", "actor_type", "discoverable", "also_known_as", "silenced_at", "suspended_at", "hide_collections", "avatar_storage_schema_version", "header_storage_schema_version", "devices_url", "suspension_origin", "sensitized_at", "trendable", "reviewed_at", "requested_review_at", "indexable") VALUES ($1, $2, $3, $4, $5, $6, $7, $8, $9, $10, $11, $12, $13, $14, $15, $16, $17, $18, $19, $20, $21, $22, $23, $24, $25, $26, $27, $28, $29, $30, $31, $32, $33, $34, $35, $36, $37, $38, $39, $40, $41, $42, $43, $44, $45, $46) RETURNING "id"  [["username", "capitoledulibre"], ["domain", "framapiaf.org"], ["private_key", "[FILTERED]"], ["public_key", "[FILTERED]"], ["created_at", "2018-05-13 00:00:00"], ["updated_at", "2024-03-22 18:06:12.810836"], ["note", ""], ["display_name", ""], ["uri", "https://framapiaf.org/users/capitoledulibre"], ["url", "https://framapiaf.org/@capitoledulibre"], ["avatar_file_name", nil], ["avatar_content_type", nil], ["avatar_file_size", nil], ["avatar_updated_at", nil], ["header_file_name", nil], ["header_content_type", nil], ["header_file_size", nil], ["header_updated_at", nil], ["avatar_remote_url", nil], ["locked", false], ["header_remote_url", ""], ["last_webfingered_at", nil], ["inbox_url", "https://framapiaf.org/users/capitoledulibre/inbox"], ["outbox_url", "https://framapiaf.org/users/capitoledulibre/outbox"], ["shared_inbox_url", "https://framapiaf.org/inbox"], ["followers_url", "https://framapiaf.org/users/capitoledulibre/followers"], ["protocol", 1], ["memorial", false], ["moved_to_account_id", nil], ["featured_collection_url", nil], ["fields", nil], ["actor_type", "Person"], ["discoverable", nil], ["also_known_as", nil], ["silenced_at", nil], ["suspended_at", nil], ["hide_collections", nil], ["avatar_storage_schema_version", nil], ["header_storage_schema_version", nil], ["devices_url", nil], ["suspension_origin", nil], ["sensitized_at", nil], ["trendable", nil], ["reviewed_at", nil], ["requested_review_at", nil], ["indexable", false]]
18:06:12 web.1     |   ↳ app/services/activitypub/process_account_service.rb:82:in `create_account'
18:06:12 web.1     |   TRANSACTION (0.2ms)  COMMIT
18:06:12 web.1     |   ↳ app/services/activitypub/process_account_service.rb:82:in `create_account'
18:06:12 web.1     |   Instance Exists? (0.3ms)  SELECT 1 AS one FROM "instances" WHERE "instances"."domain" = $1 LIMIT $2  [["domain", "framapiaf.org"], ["LIMIT", 1]]
18:06:12 web.1     |   ↳ app/models/concerns/domain_materializable.rb:13:in `refresh_instances_view'
18:06:12 web.1     |    (3.8ms)  REFRESH MATERIALIZED VIEW CONCURRENTLY "instances";
18:06:12 web.1     |   ↳ app/models/concerns/database_view_record.rb:8:in `refresh'
18:06:12 web.1     | [httplog] GET https://stockage.framapiaf.org/framapiaf/accounts/avatars/000/063/765/original/c5fa7c6864ab5ba2.png completed with status code 200 in 0.106222 seconds
18:06:12 web.1     | [paperclip] Trying to link /tmp/dfb4be72a3b4120a97176ac9fd475e9820240322-2934-l81vgu.png to /tmp/e14cda966a1267be149d6613ad7683ec20240322-2934-scyeso.png
18:06:12 web.1     | Command :: file -b --mime '/tmp/e14cda966a1267be149d6613ad7683ec20240322-2934-scyeso.png'
18:06:12 web.1     | [paperclip] Trying to link /tmp/dfb4be72a3b4120a97176ac9fd475e9820240322-2934-l81vgu.png to /tmp/ab43cf858bd3b6d7882061ef415beb6520240322-2934-k75kad.png
18:06:13 web.1     | [httplog] GET https://stockage.framapiaf.org/framapiaf/accounts/headers/000/063/765/original/c9a706673d787985.png completed with status code 200 in 0.074891 seconds
18:06:13 web.1     | [paperclip] Trying to link /tmp/e56b568d2b8520b764b1167c9523d97720240322-2934-ntea92.png to /tmp/f11daea1ad3a8ace098fbd0126a64e2c20240322-2934-9ebwgc.png
18:06:13 web.1     | Command :: file -b --mime '/tmp/f11daea1ad3a8ace098fbd0126a64e2c20240322-2934-9ebwgc.png'
18:06:13 web.1     | [paperclip] Trying to link /tmp/e56b568d2b8520b764b1167c9523d97720240322-2934-ntea92.png to /tmp/7bdaae87e697e4da1c61609fc7e202ae20240322-2934-momlv.png
18:06:13 web.1     |   Account Load (0.5ms)  SELECT "accounts"."id", "accounts"."username", "accounts"."domain", "accounts"."private_key", "accounts"."public_key", "accounts"."created_at", "accounts"."updated_at", "accounts"."note", "accounts"."display_name", "accounts"."uri", "accounts"."url", "accounts"."avatar_file_name", "accounts"."avatar_content_type", "accounts"."avatar_file_size", "accounts"."avatar_updated_at", "accounts"."header_file_name", "accounts"."header_content_type", "accounts"."header_file_size", "accounts"."header_updated_at", "accounts"."avatar_remote_url", "accounts"."locked", "accounts"."header_remote_url", "accounts"."last_webfingered_at", "accounts"."inbox_url", "accounts"."outbox_url", "accounts"."shared_inbox_url", "accounts"."followers_url", "accounts"."protocol", "accounts"."memorial", "accounts"."moved_to_account_id", "accounts"."featured_collection_url", "accounts"."fields", "accounts"."actor_type", "accounts"."discoverable", "accounts"."also_known_as", "accounts"."silenced_at", "accounts"."suspended_at", "accounts"."hide_collections", "accounts"."avatar_storage_schema_version", "accounts"."header_storage_schema_version", "accounts"."devices_url", "accounts"."suspension_origin", "accounts"."sensitized_at", "accounts"."trendable", "accounts"."reviewed_at", "accounts"."requested_review_at", "accounts"."indexable" FROM "accounts" WHERE "accounts"."id" = $1 LIMIT $2  [["id", -99], ["LIMIT", 1]]
18:06:13 web.1     |   ↳ app/models/concerns/account/finder_concern.rb:16:in `representative'
18:06:13 web.1     | [httplog] GET https://framapiaf.org/users/capitoledulibre/outbox completed with status code 200 in 0.055824 seconds
18:06:13 web.1     |   AccountStat Load (0.2ms)  SELECT "account_stats"."id", "account_stats"."account_id", "account_stats"."statuses_count", "account_stats"."following_count", "account_stats"."followers_count", "account_stats"."created_at", "account_stats"."updated_at", "account_stats"."last_status_at" FROM "account_stats" WHERE "account_stats"."account_id" = $1 LIMIT $2  [["account_id", 112140666326890329], ["LIMIT", 1]]
18:06:13 web.1     |   ↳ app/models/concerns/account/counters.rb:77:in `account_stat'
18:06:13 web.1     |   CACHE Account Load (0.0ms)  SELECT "accounts"."id", "accounts"."username", "accounts"."domain", "accounts"."private_key", "accounts"."public_key", "accounts"."created_at", "accounts"."updated_at", "accounts"."note", "accounts"."display_name", "accounts"."uri", "accounts"."url", "accounts"."avatar_file_name", "accounts"."avatar_content_type", "accounts"."avatar_file_size", "accounts"."avatar_updated_at", "accounts"."header_file_name", "accounts"."header_content_type", "accounts"."header_file_size", "accounts"."header_updated_at", "accounts"."avatar_remote_url", "accounts"."locked", "accounts"."header_remote_url", "accounts"."last_webfingered_at", "accounts"."inbox_url", "accounts"."outbox_url", "accounts"."shared_inbox_url", "accounts"."followers_url", "accounts"."protocol", "accounts"."memorial", "accounts"."moved_to_account_id", "accounts"."featured_collection_url", "accounts"."fields", "accounts"."actor_type", "accounts"."discoverable", "accounts"."also_known_as", "accounts"."silenced_at", "accounts"."suspended_at", "accounts"."hide_collections", "accounts"."avatar_storage_schema_version", "accounts"."header_storage_schema_version", "accounts"."devices_url", "accounts"."suspension_origin", "accounts"."sensitized_at", "accounts"."trendable", "accounts"."reviewed_at", "accounts"."requested_review_at", "accounts"."indexable" FROM "accounts" WHERE "accounts"."id" = $1 LIMIT $2  [["id", -99], ["LIMIT", 1]]
18:06:13 web.1     |   ↳ app/models/concerns/account/finder_concern.rb:16:in `representative'
18:06:13 web.1     | [httplog] GET https://framapiaf.org/users/capitoledulibre/following completed with status code 200 in 0.055445 seconds
18:06:13 web.1     |   CACHE Account Load (0.0ms)  SELECT "accounts"."id", "accounts"."username", "accounts"."domain", "accounts"."private_key", "accounts"."public_key", "accounts"."created_at", "accounts"."updated_at", "accounts"."note", "accounts"."display_name", "accounts"."uri", "accounts"."url", "accounts"."avatar_file_name", "accounts"."avatar_content_type", "accounts"."avatar_file_size", "accounts"."avatar_updated_at", "accounts"."header_file_name", "accounts"."header_content_type", "accounts"."header_file_size", "accounts"."header_updated_at", "accounts"."avatar_remote_url", "accounts"."locked", "accounts"."header_remote_url", "accounts"."last_webfingered_at", "accounts"."inbox_url", "accounts"."outbox_url", "accounts"."shared_inbox_url", "accounts"."followers_url", "accounts"."protocol", "accounts"."memorial", "accounts"."moved_to_account_id", "accounts"."featured_collection_url", "accounts"."fields", "accounts"."actor_type", "accounts"."discoverable", "accounts"."also_known_as", "accounts"."silenced_at", "accounts"."suspended_at", "accounts"."hide_collections", "accounts"."avatar_storage_schema_version", "accounts"."header_storage_schema_version", "accounts"."devices_url", "accounts"."suspension_origin", "accounts"."sensitized_at", "accounts"."trendable", "accounts"."reviewed_at", "accounts"."requested_review_at", "accounts"."indexable" FROM "accounts" WHERE "accounts"."id" = $1 LIMIT $2  [["id", -99], ["LIMIT", 1]]
18:06:13 web.1     |   ↳ app/models/concerns/account/finder_concern.rb:16:in `representative'
18:06:13 web.1     | [httplog] GET https://framapiaf.org/users/capitoledulibre/followers completed with status code 200 in 0.070145 seconds
18:06:13 web.1     | [paperclip] Trying to link /tmp/ab43cf858bd3b6d7882061ef415beb6520240322-2934-k75kad.png to /tmp/e14cda966a1267be149d6613ad7683ec20240322-2934-74bstz.png
18:06:13 web.1     | Command :: file -b --mime '/tmp/e14cda966a1267be149d6613ad7683ec20240322-2934-74bstz.png'
18:06:13 web.1     | [paperclip] Trying to link /tmp/7bdaae87e697e4da1c61609fc7e202ae20240322-2934-momlv.png to /tmp/f11daea1ad3a8ace098fbd0126a64e2c20240322-2934-n08xph.png
18:06:13 web.1     | Command :: file -b --mime '/tmp/f11daea1ad3a8ace098fbd0126a64e2c20240322-2934-n08xph.png'
18:06:13 web.1     |   TRANSACTION (0.1ms)  BEGIN
18:06:13 web.1     |   ↳ app/models/account.rb:371:in `save_with_optional_media!'
18:06:13 web.1     |   Account Update (1.3ms)  UPDATE "accounts" SET "public_key" = $1, "updated_at" = $2, "note" = $3, "display_name" = $4, "avatar_file_name" = $5, "avatar_content_type" = $6, "avatar_file_size" = $7, "avatar_updated_at" = $8, "header_file_name" = $9, "header_content_type" = $10, "header_file_size" = $11, "header_updated_at" = $12, "avatar_remote_url" = $13, "header_remote_url" = $14, "last_webfingered_at" = $15, "featured_collection_url" = $16, "fields" = $17, "discoverable" = $18, "also_known_as" = $19, "hide_collections" = $20, "avatar_storage_schema_version" = $21, "header_storage_schema_version" = $22, "devices_url" = $23 WHERE "accounts"."id" = $24  [["public_key", "[FILTERED]"], ["updated_at", "2024-03-22 18:06:13.283272"], ["note", "<p>L&#39;événement du <a href=\"https://framapiaf.org/tags/Libre\" class=\"mention hashtag\" rel=\"tag\">#<span>Libre</span></a> à <a href=\"https://framapiaf.org/tags/toulouse\" class=\"mention hashtag\" rel=\"tag\">#<span>toulouse</span></a> Samedi 16 et Dimanche 17 novembre 2024 Organisé par l&#39;association Toulibre</p>"], ["display_name", "Capitole du Libre"], ["avatar_file_name", "e996b0b32188e9a1.png"], ["avatar_content_type", "image/png"], ["avatar_file_size", 18866], ["avatar_updated_at", "2024-03-22 18:06:12.928622"], ["header_file_name", "6f866aea7bdc24c2.png"], ["header_content_type", "image/png"], ["header_file_size", 519316], ["header_updated_at", "2024-03-22 18:06:13.079697"], ["avatar_remote_url", "https://stockage.framapiaf.org/framapiaf/accounts/avatars/000/063/765/original/c5fa7c6864ab5ba2.png"], ["header_remote_url", "https://stockage.framapiaf.org/framapiaf/accounts/headers/000/063/765/original/c9a706673d787985.png"], ["last_webfingered_at", "2024-03-22 18:06:12.819517"], ["featured_collection_url", "https://framapiaf.org/users/capitoledulibre/collections/featured"], ["fields", "[]"], ["discoverable", true], ["also_known_as", "{}"], ["hide_collections", false], ["avatar_storage_schema_version", 1], ["header_storage_schema_version", 1], ["devices_url", "https://framapiaf.org/users/capitoledulibre/collections/devices"], ["id", 112140666326890329]]
18:06:13 web.1     |   ↳ app/models/account.rb:371:in `save_with_optional_media!'
18:06:13 web.1     |   AccountStat Create (0.3ms)  INSERT INTO "account_stats" ("account_id", "statuses_count", "following_count", "followers_count", "created_at", "updated_at", "last_status_at") VALUES ($1, $2, $3, $4, $5, $6, $7) RETURNING "id"  [["account_id", 112140666326890329], ["statuses_count", 107], ["following_count", 12], ["followers_count", 1011], ["created_at", "2024-03-22 18:06:13.286572"], ["updated_at", "2024-03-22 18:06:13.286572"], ["last_status_at", nil]]
18:06:13 web.1     |   ↳ app/models/account.rb:371:in `save_with_optional_media!'
18:06:13 web.1     |   TRANSACTION (0.2ms)  COMMIT
18:06:13 web.1     |   ↳ app/models/account.rb:371:in `save_with_optional_media!'
18:06:13 web.1     |   Account Exists? (0.3ms)  SELECT 1 AS one FROM "accounts" WHERE "accounts"."uri" = $1 AND "accounts"."id" != $2 LIMIT $3  [["uri", "https://framapiaf.org/users/capitoledulibre"], ["id", 112140666326890329], ["LIMIT", 1]]
18:06:13 web.1     |   ↳ app/services/activitypub/process_account_service.rb:187:in `process_duplicate_accounts!'
18:06:13 sidekiq.1 | 2024-03-22T18:06:13.295Z pid=2871 tid=ofr class=ActivityPub::SynchronizeFeaturedCollectionWorker jid=495acbc164c4f7cd5eefd37f INFO: start
18:06:13 web.1     |   Follow Pluck (0.2ms)  SELECT "follows"."target_account_id" FROM "follows" WHERE "follows"."account_id" = $1  [["account_id", 112136525779164011]]
18:06:13 web.1     |   ↳ app/services/account_search_service.rb:120:in `following_ids'
18:06:13 sidekiq.1 | 2024-03-22T18:06:13.297Z pid=2871 tid=jcr class=ActivityPub::SynchronizeFeaturedTagsCollectionWorker jid=a76ef5e7ac38ec7019e94c1b INFO: start
18:06:13 web.1     | [httplog] POST http://localhost:9200/accounts/_search completed with status code 200 in 0.002669 seconds
18:06:13 web.1     |   AccountsIndex Search (3.4ms) {:index=>["accounts"], :body=>{:size=>10, :from=>0, :query=>{:bool=>{:must=>{:function_score=>{:query=>{:bool=>{:must=>[{:multi_match=>{:query=>"capitoledulibre@framapiaf.org", :type=>"most_fields", :fields=>["username^2", "display_name^2", "text", "text.*"], :operator=>"and"}}], :must_not=>[]}}, :functions=>[{:script_score=>{:script=>{:source=>"(Math.max(doc['followers_count'].value, 0) + 0.0) / (Math.max(doc['followers_count'].value, 0) + Math.max(doc['following_count'].value, 0) + 1)"}}}, {:script_score=>{:script=>{:source=>"(Math.max(doc['followers_count'].value, 0) / (Math.max(doc['followers_count'].value, 0) + 1))"}}}, {:gauss=>{:last_status_at=>{:scale=>"30d", :offset=>"30d", :decay=>0.3}}}]}}, :should=>[{:terms=>{:id=>[112136525779164011], :boost=>100}}]}}}}
18:06:13 web.1     | [httplog] POST http://localhost:9200/public_statuses,statuses/_search completed with status code 200 in 0.004271 seconds
18:06:13 web.1     |   [PublicStatusesIndex, StatusesIndex] Search (4.8ms) {:index=>["public_statuses", "statuses"], :body=>{:collapse=>{"field"=>:id}, :sort=>[{"id"=>{:order=>:desc}}], :size=>11, :from=>0, :query=>{:bool=>{:must=>{:multi_match=>{:type=>"most_fields", :query=>"@capitoledulibre@framapiaf.org", :fields=>["text", "text.stemmed"], :operator=>"and"}}, :filter=>{:bool=>{:should=>[{:term=>{:_index=>"public_statuses"}}, {:bool=>{:must=>[{:term=>{:_index=>"statuses"}}, {:term=>{:searchable_by=>112136525779164011}}]}}], :minimum_should_match=>1}}}}}}
18:06:13 web.1     | [httplog] POST http://localhost:9200/tags/_search completed with status code 404 in 0.001286 seconds
18:06:13 web.1     |   TagsIndex Search (2.0ms) {:index=>["tags"], :body=>{:size=>11, :from=>0, :query=>{:function_score=>{:query=>{:multi_match=>{:query=>"@capitoledulibre@framapiaf.org", :fields=>["name.edge_ngram", "name"], :type=>"most_fields", :operator=>"and"}}, :functions=>[{:field_value_factor=>{:field=>"usage", :modifier=>"log2p", :missing=>0}}, {:gauss=>{:last_status_at=>{:scale=>"7d", :offset=>"14d", :decay=>0.5}}}], :boost_mode=>"multiply"}}}}
18:06:13 web.1     |   Tag Load (0.4ms)  SELECT "tags".* FROM "tags" WHERE LOWER("tags"."name") = LOWER('capitoledulibreframapiaforg') ORDER BY "tags"."id" ASC LIMIT $1  [["LIMIT", 1]]
18:06:13 web.1     |   ↳ app/models/tag.rb:141:in `find_normalized'
18:06:13 web.1     | Completed 200 OK in 807ms (Views: 1.8ms | ActiveRecord: 11.8ms | Allocations: 119539)
18:06:13 web.1     | 
18:06:13 web.1     | 
18:06:13 web.1     | Started GET "/api/v1/accounts/relationships?with_suspended=true&id[]=112140666326890329" for 10.0.2.2 at 2024-03-22 18:06:13 +0000
18:06:13 sidekiq.1 |   Account Load (0.2ms)  SELECT "accounts"."id", "accounts"."username", "accounts"."domain", "accounts"."private_key", "accounts"."public_key", "accounts"."created_at", "accounts"."updated_at", "accounts"."note", "accounts"."display_name", "accounts"."uri", "accounts"."url", "accounts"."avatar_file_name", "accounts"."avatar_content_type", "accounts"."avatar_file_size", "accounts"."avatar_updated_at", "accounts"."header_file_name", "accounts"."header_content_type", "accounts"."header_file_size", "accounts"."header_updated_at", "accounts"."avatar_remote_url", "accounts"."locked", "accounts"."header_remote_url", "accounts"."last_webfingered_at", "accounts"."inbox_url", "accounts"."outbox_url", "accounts"."shared_inbox_url", "accounts"."followers_url", "accounts"."protocol", "accounts"."memorial", "accounts"."moved_to_account_id", "accounts"."featured_collection_url", "accounts"."fields", "accounts"."actor_type", "accounts"."discoverable", "accounts"."also_known_as", "accounts"."silenced_at", "accounts"."suspended_at", "accounts"."hide_collections", "accounts"."avatar_storage_schema_version", "accounts"."header_storage_schema_version", "accounts"."devices_url", "accounts"."suspension_origin", "accounts"."sensitized_at", "accounts"."trendable", "accounts"."reviewed_at", "accounts"."requested_review_at", "accounts"."indexable" FROM "accounts" WHERE "accounts"."id" = $1 LIMIT $2  [["id", 112140666326890329], ["LIMIT", 1]]
18:06:13 sidekiq.1 |   ↳ app/workers/activitypub/synchronize_featured_collection_worker.rb:11:in `perform'
18:06:13 sidekiq.1 |   Account Load (0.5ms)  SELECT "accounts"."id", "accounts"."username", "accounts"."domain", "accounts"."private_key", "accounts"."public_key", "accounts"."created_at", "accounts"."updated_at", "accounts"."note", "accounts"."display_name", "accounts"."uri", "accounts"."url", "accounts"."avatar_file_name", "accounts"."avatar_content_type", "accounts"."avatar_file_size", "accounts"."avatar_updated_at", "accounts"."header_file_name", "accounts"."header_content_type", "accounts"."header_file_size", "accounts"."header_updated_at", "accounts"."avatar_remote_url", "accounts"."locked", "accounts"."header_remote_url", "accounts"."last_webfingered_at", "accounts"."inbox_url", "accounts"."outbox_url", "accounts"."shared_inbox_url", "accounts"."followers_url", "accounts"."protocol", "accounts"."memorial", "accounts"."moved_to_account_id", "accounts"."featured_collection_url", "accounts"."fields", "accounts"."actor_type", "accounts"."discoverable", "accounts"."also_known_as", "accounts"."silenced_at", "accounts"."suspended_at", "accounts"."hide_collections", "accounts"."avatar_storage_schema_version", "accounts"."header_storage_schema_version", "accounts"."devices_url", "accounts"."suspension_origin", "accounts"."sensitized_at", "accounts"."trendable", "accounts"."reviewed_at", "accounts"."requested_review_at", "accounts"."indexable" FROM "accounts" INNER JOIN "follows" ON "accounts"."id" = "follows"."account_id" WHERE "follows"."target_account_id" = $1 AND "accounts"."domain" IS NULL AND "accounts"."suspended_at" IS NULL ORDER BY follows.id desc LIMIT $2  [["target_account_id", 112140666326890329], ["LIMIT", 1]]
18:06:13 sidekiq.1 |   ↳ app/services/activitypub/fetch_featured_collection_service.rb:103:in `local_follower'
18:06:13 sidekiq.1 |   Account Load (0.2ms)  SELECT "accounts"."id", "accounts"."username", "accounts"."domain", "accounts"."private_key", "accounts"."public_key", "accounts"."created_at", "accounts"."updated_at", "accounts"."note", "accounts"."display_name", "accounts"."uri", "accounts"."url", "accounts"."avatar_file_name", "accounts"."avatar_content_type", "accounts"."avatar_file_size", "accounts"."avatar_updated_at", "accounts"."header_file_name", "accounts"."header_content_type", "accounts"."header_file_size", "accounts"."header_updated_at", "accounts"."avatar_remote_url", "accounts"."locked", "accounts"."header_remote_url", "accounts"."last_webfingered_at", "accounts"."inbox_url", "accounts"."outbox_url", "accounts"."shared_inbox_url", "accounts"."followers_url", "accounts"."protocol", "accounts"."memorial", "accounts"."moved_to_account_id", "accounts"."featured_collection_url", "accounts"."fields", "accounts"."actor_type", "accounts"."discoverable", "accounts"."also_known_as", "accounts"."silenced_at", "accounts"."suspended_at", "accounts"."hide_collections", "accounts"."avatar_storage_schema_version", "accounts"."header_storage_schema_version", "accounts"."devices_url", "accounts"."suspension_origin", "accounts"."sensitized_at", "accounts"."trendable", "accounts"."reviewed_at", "accounts"."requested_review_at", "accounts"."indexable" FROM "accounts" WHERE "accounts"."id" = $1 LIMIT $2  [["id", -99], ["LIMIT", 1]]
18:06:13 sidekiq.1 |   ↳ app/models/concerns/account/finder_concern.rb:16:in `representative'
18:06:13 sidekiq.1 |   Account Load (0.2ms)  SELECT "accounts"."id", "accounts"."username", "accounts"."domain", "accounts"."private_key", "accounts"."public_key", "accounts"."created_at", "accounts"."updated_at", "accounts"."note", "accounts"."display_name", "accounts"."uri", "accounts"."url", "accounts"."avatar_file_name", "accounts"."avatar_content_type", "accounts"."avatar_file_size", "accounts"."avatar_updated_at", "accounts"."header_file_name", "accounts"."header_content_type", "accounts"."header_file_size", "accounts"."header_updated_at", "accounts"."avatar_remote_url", "accounts"."locked", "accounts"."header_remote_url", "accounts"."last_webfingered_at", "accounts"."inbox_url", "accounts"."outbox_url", "accounts"."shared_inbox_url", "accounts"."followers_url", "accounts"."protocol", "accounts"."memorial", "accounts"."moved_to_account_id", "accounts"."featured_collection_url", "accounts"."fields", "accounts"."actor_type", "accounts"."discoverable", "accounts"."also_known_as", "accounts"."silenced_at", "accounts"."suspended_at", "accounts"."hide_collections", "accounts"."avatar_storage_schema_version", "accounts"."header_storage_schema_version", "accounts"."devices_url", "accounts"."suspension_origin", "accounts"."sensitized_at", "accounts"."trendable", "accounts"."reviewed_at", "accounts"."requested_review_at", "accounts"."indexable" FROM "accounts" WHERE "accounts"."id" = $1 LIMIT $2  [["id", 112140666326890329], ["LIMIT", 1]]
18:06:13 sidekiq.1 |   ↳ app/workers/activitypub/synchronize_featured_tags_collection_worker.rb:9:in `perform'
18:06:13 sidekiq.1 |   Account Load (0.4ms)  SELECT "accounts"."id", "accounts"."username", "accounts"."domain", "accounts"."private_key", "accounts"."public_key", "accounts"."created_at", "accounts"."updated_at", "accounts"."note", "accounts"."display_name", "accounts"."uri", "accounts"."url", "accounts"."avatar_file_name", "accounts"."avatar_content_type", "accounts"."avatar_file_size", "accounts"."avatar_updated_at", "accounts"."header_file_name", "accounts"."header_content_type", "accounts"."header_file_size", "accounts"."header_updated_at", "accounts"."avatar_remote_url", "accounts"."locked", "accounts"."header_remote_url", "accounts"."last_webfingered_at", "accounts"."inbox_url", "accounts"."outbox_url", "accounts"."shared_inbox_url", "accounts"."followers_url", "accounts"."protocol", "accounts"."memorial", "accounts"."moved_to_account_id", "accounts"."featured_collection_url", "accounts"."fields", "accounts"."actor_type", "accounts"."discoverable", "accounts"."also_known_as", "accounts"."silenced_at", "accounts"."suspended_at", "accounts"."hide_collections", "accounts"."avatar_storage_schema_version", "accounts"."header_storage_schema_version", "accounts"."devices_url", "accounts"."suspension_origin", "accounts"."sensitized_at", "accounts"."trendable", "accounts"."reviewed_at", "accounts"."requested_review_at", "accounts"."indexable" FROM "accounts" INNER JOIN "follows" ON "accounts"."id" = "follows"."account_id" WHERE "follows"."target_account_id" = $1 AND "accounts"."domain" IS NULL AND "accounts"."suspended_at" IS NULL ORDER BY follows.id desc LIMIT $2  [["target_account_id", 112140666326890329], ["LIMIT", 1]]
18:06:13 web.1     | Cache read: blocked_ips ({:compress=>true, :compress_threshold=>1024})
18:06:13 sidekiq.1 |   ↳ app/services/activitypub/fetch_featured_tags_collection_service.rb:70:in `local_follower'
18:06:13 web.1     | Cache generate: blocked_ips ({:compress=>true, :compress_threshold=>1024})
18:06:13 sidekiq.1 |   Account Load (0.2ms)  SELECT "accounts"."id", "accounts"."username", "accounts"."domain", "accounts"."private_key", "accounts"."public_key", "accounts"."created_at", "accounts"."updated_at", "accounts"."note", "accounts"."display_name", "accounts"."uri", "accounts"."url", "accounts"."avatar_file_name", "accounts"."avatar_content_type", "accounts"."avatar_file_size", "accounts"."avatar_updated_at", "accounts"."header_file_name", "accounts"."header_content_type", "accounts"."header_file_size", "accounts"."header_updated_at", "accounts"."avatar_remote_url", "accounts"."locked", "accounts"."header_remote_url", "accounts"."last_webfingered_at", "accounts"."inbox_url", "accounts"."outbox_url", "accounts"."shared_inbox_url", "accounts"."followers_url", "accounts"."protocol", "accounts"."memorial", "accounts"."moved_to_account_id", "accounts"."featured_collection_url", "accounts"."fields", "accounts"."actor_type", "accounts"."discoverable", "accounts"."also_known_as", "accounts"."silenced_at", "accounts"."suspended_at", "accounts"."hide_collections", "accounts"."avatar_storage_schema_version", "accounts"."header_storage_schema_version", "accounts"."devices_url", "accounts"."suspension_origin", "accounts"."sensitized_at", "accounts"."trendable", "accounts"."reviewed_at", "accounts"."requested_review_at", "accounts"."indexable" FROM "accounts" WHERE "accounts"."id" = $1 LIMIT $2  [["id", -99], ["LIMIT", 1]]
18:06:13 sidekiq.1 |   ↳ app/models/concerns/account/finder_concern.rb:16:in `representative'
18:06:13 web.1     |   IpBlock Pluck (0.1ms)  SELECT "ip_blocks"."ip" FROM "ip_blocks" WHERE "ip_blocks"."severity" = $1  [["severity", 9999]]
18:06:13 web.1     |   ↳ app/models/ip_block.rb:39:in `block in blocked?'
18:06:13 web.1     | Cache write: blocked_ips ({:compress=>true, :compress_threshold=>1024})
18:06:13 web.1     |   Doorkeeper::AccessToken Load (0.1ms)  SELECT "oauth_access_tokens".* FROM "oauth_access_tokens" WHERE "oauth_access_tokens"."token" = $1 LIMIT $2  [["token", "[FILTERED]"], ["LIMIT", 1]]
18:06:13 web.1     |   ↳ config/initializers/rack_attack.rb:10:in `authenticated_token'
18:06:13 web.1     | Cache write: rack::attack:5703769:throttle_authenticated_api:1 ({:compress=>true, :compress_threshold=>1024, :expires_in=>228})
18:06:13 web.1     | Cache write: rack::attack:5703769:throttle_per_token_api:5 ({:compress=>true, :compress_threshold=>1024, :expires_in=>228})
18:06:13 web.1     | Processing by Api::V1::Accounts::RelationshipsController#index as HTML
18:06:13 web.1     |   Parameters: {"with_suspended"=>"true", "id"=>["112140666326890329"]}
18:06:13 web.1     |   CACHE Doorkeeper::AccessToken Load (0.0ms)  SELECT "oauth_access_tokens".* FROM "oauth_access_tokens" WHERE "oauth_access_tokens"."token" = $1 LIMIT $2  [["token", "[FILTERED]"], ["LIMIT", 1]]
18:06:13 web.1     |   ↳ app/controllers/api/base_controller.rb:58:in `current_resource_owner'
18:06:13 web.1     |   User Load (0.3ms)  SELECT "users"."id", "users"."email", "users"."created_at", "users"."updated_at", "users"."encrypted_password", "users"."reset_password_token", "users"."reset_password_sent_at", "users"."sign_in_count", "users"."current_sign_in_at", "users"."last_sign_in_at", "users"."confirmation_token", "users"."confirmed_at", "users"."confirmation_sent_at", "users"."unconfirmed_email", "users"."locale", "users"."encrypted_otp_secret", "users"."encrypted_otp_secret_iv", "users"."encrypted_otp_secret_salt", "users"."consumed_timestep", "users"."otp_required_for_login", "users"."last_emailed_at", "users"."otp_backup_codes", "users"."account_id", "users"."disabled", "users"."invite_id", "users"."chosen_languages", "users"."created_by_application_id", "users"."approved", "users"."sign_in_token", "users"."sign_in_token_sent_at", "users"."webauthn_id", "users"."sign_up_ip", "users"."role_id", "users"."settings", "users"."time_zone" FROM "users" WHERE "users"."id" = $1 LIMIT $2  [["id", 1], ["LIMIT", 1]]
18:06:13 web.1     |   ↳ app/controllers/api/base_controller.rb:58:in `current_resource_owner'
18:06:13 web.1     |   SessionActivation Load (0.2ms)  SELECT "session_activations".* FROM "session_activations" WHERE "session_activations"."session_id" = $1 LIMIT $2  [["session_id", "344f7dc54308ebb2fabaacb4f95eec2d"], ["LIMIT", 1]]
18:06:13 web.1     |   ↳ app/controllers/application_controller.rb:156:in `current_session'
18:06:13 web.1     |   Account Load (0.3ms)  SELECT "accounts"."id", "accounts"."username", "accounts"."domain", "accounts"."private_key", "accounts"."public_key", "accounts"."created_at", "accounts"."updated_at", "accounts"."note", "accounts"."display_name", "accounts"."uri", "accounts"."url", "accounts"."avatar_file_name", "accounts"."avatar_content_type", "accounts"."avatar_file_size", "accounts"."avatar_updated_at", "accounts"."header_file_name", "accounts"."header_content_type", "accounts"."header_file_size", "accounts"."header_updated_at", "accounts"."avatar_remote_url", "accounts"."locked", "accounts"."header_remote_url", "accounts"."last_webfingered_at", "accounts"."inbox_url", "accounts"."outbox_url", "accounts"."shared_inbox_url", "accounts"."followers_url", "accounts"."protocol", "accounts"."memorial", "accounts"."moved_to_account_id", "accounts"."featured_collection_url", "accounts"."fields", "accounts"."actor_type", "accounts"."discoverable", "accounts"."also_known_as", "accounts"."silenced_at", "accounts"."suspended_at", "accounts"."hide_collections", "accounts"."avatar_storage_schema_version", "accounts"."header_storage_schema_version", "accounts"."devices_url", "accounts"."suspension_origin", "accounts"."sensitized_at", "accounts"."trendable", "accounts"."reviewed_at", "accounts"."requested_review_at", "accounts"."indexable" FROM "accounts" WHERE "accounts"."id" = $1 LIMIT $2  [["id", 112136525779164011], ["LIMIT", 1]]
18:06:13 web.1     |   ↳ app/controllers/api/base_controller.rb:72:in `require_not_suspended!'
18:06:13 sidekiq.1 | [httplog] GET https://framapiaf.org/users/capitoledulibre/collections/featured completed with status code 200 in 0.065984 seconds
18:06:13 web.1     |   Account Load (0.1ms)  SELECT "accounts"."id", "accounts"."domain" FROM "accounts" WHERE "accounts"."id" = $1  [["id", 112140666326890329]]
18:06:13 web.1     |   ↳ app/presenters/account_relationships_presenter.rb:9:in `initialize'
18:06:13 web.1     | Cache read_multi: 1 key(s) specified ({:compress=>true, :compress_threshold=>1024})
18:06:13 web.1     |   Follow Load (0.1ms)  SELECT "follows".* FROM "follows" WHERE "follows"."target_account_id" = $1 AND "follows"."account_id" = $2  [["target_account_id", 112140666326890329], ["account_id", 112136525779164011]]
18:06:13 web.1     |   ↳ app/models/concerns/account/interactions.rb:8:in `each_with_object'
18:06:13 web.1     |   Follow Pluck (0.1ms)  SELECT "follows"."account_id" FROM "follows" WHERE "follows"."account_id" = $1 AND "follows"."target_account_id" = $2  [["account_id", 112140666326890329], ["target_account_id", 112136525779164011]]
18:06:13 web.1     |   ↳ app/models/concerns/account/interactions.rb:70:in `follow_mapping'
18:06:13 web.1     |   Block Pluck (0.1ms)  SELECT "blocks"."target_account_id" FROM "blocks" WHERE "blocks"."target_account_id" = $1 AND "blocks"."account_id" = $2  [["target_account_id", 112140666326890329], ["account_id", 112136525779164011]]
18:06:13 web.1     |   ↳ app/models/concerns/account/interactions.rb:70:in `follow_mapping'
18:06:13 web.1     |   Block Pluck (0.1ms)  SELECT "blocks"."account_id" FROM "blocks" WHERE "blocks"."account_id" = $1 AND "blocks"."target_account_id" = $2  [["account_id", 112140666326890329], ["target_account_id", 112136525779164011]]
18:06:13 web.1     |   ↳ app/models/concerns/account/interactions.rb:70:in `follow_mapping'
18:06:13 web.1     |   Mute Load (0.1ms)  SELECT "mutes".* FROM "mutes" WHERE "mutes"."target_account_id" = $1 AND "mutes"."account_id" = $2  [["target_account_id", 112140666326890329], ["account_id", 112136525779164011]]
18:06:13 web.1     |   ↳ app/models/concerns/account/interactions.rb:30:in `each_with_object'
18:06:13 web.1     |   FollowRequest Load (0.1ms)  SELECT "follow_requests".* FROM "follow_requests" WHERE "follow_requests"."target_account_id" = $1 AND "follow_requests"."account_id" = $2  [["target_account_id", 112140666326890329], ["account_id", 112136525779164011]]
18:06:13 web.1     |   ↳ app/models/concerns/account/interactions.rb:38:in `each_with_object'
18:06:13 web.1     |   FollowRequest Pluck (0.1ms)  SELECT "follow_requests"."account_id" FROM "follow_requests" WHERE "follow_requests"."account_id" = $1 AND "follow_requests"."target_account_id" = $2  [["account_id", 112140666326890329], ["target_account_id", 112136525779164011]]
18:06:13 web.1     |   ↳ app/models/concerns/account/interactions.rb:70:in `follow_mapping'
18:06:13 web.1     |   AccountPin Pluck (0.2ms)  SELECT "account_pins"."target_account_id" FROM "account_pins" WHERE "account_pins"."account_id" = $1 AND "account_pins"."target_account_id" = $2  [["account_id", 112136525779164011], ["target_account_id", 112140666326890329]]
18:06:13 web.1     |   ↳ app/models/concerns/account/interactions.rb:70:in `follow_mapping'
18:06:13 web.1     |   AccountNote Load (0.2ms)  SELECT "account_notes".* FROM "account_notes" WHERE "account_notes"."target_account_id" = $1 AND "account_notes"."account_id" = $2  [["target_account_id", 112140666326890329], ["account_id", 112136525779164011]]
18:06:13 web.1     |   ↳ app/models/concerns/account/interactions.rb:56:in `each_with_object'
18:06:13 web.1     | Cache read_multi: 1 key(s) specified ({:compress=>true, :compress_threshold=>1024})
18:06:13 sidekiq.1 | [httplog] GET https://framapiaf.org/users/capitoledulibre/collections/tags completed with status code 200 in 0.064004 seconds
18:06:13 web.1     |   AccountDomainBlock Pluck (0.1ms)  SELECT "account_domain_blocks"."domain" FROM "account_domain_blocks" WHERE "account_domain_blocks"."account_id" = $1 AND "account_domain_blocks"."domain" = $2  [["account_id", 112136525779164011], ["domain", "framapiaf.org"]]
18:06:13 web.1     |   ↳ app/presenters/account_relationships_presenter.rb:54:in `domain_blocking_map'
18:06:13 web.1     | Cache write_multi: 1 key(s) specified ({:compress=>true, :compress_threshold=>1024, :expires_in=>1 day})
18:06:13 web.1     | Cache write_multi: 1 key(s) specified ({:compress=>true, :compress_threshold=>1024, :expires_in=>1 day})
18:06:13 web.1     | Completed 200 OK in 66ms (Views: 0.5ms | ActiveRecord: 2.0ms | Allocations: 8461)
18:06:13 web.1     | 
18:06:13 web.1     | 
18:06:13 sidekiq.1 |   FeaturedTag Delete All (0.7ms)  DELETE FROM "featured_tags" WHERE "featured_tags"."id" IN (SELECT "featured_tags"."id" FROM "featured_tags" LEFT OUTER JOIN "tags" "tag" ON "tag"."id" = "featured_tags"."tag_id" WHERE "featured_tags"."account_id" = $1 AND 1=1)  [["account_id", 112140666326890329]]
18:06:13 sidekiq.1 |   ↳ app/services/activitypub/fetch_featured_tags_collection_service.rb:56:in `process_items'
18:06:13 sidekiq.1 | 2024-03-22T18:06:13.503Z pid=2871 tid=jcr class=ActivityPub::SynchronizeFeaturedTagsCollectionWorker jid=a76ef5e7ac38ec7019e94c1b elapsed=0.206 INFO: done
18:06:13 sidekiq.1 |   DomainBlock Load (0.6ms)  SELECT "domain_blocks".* FROM "domain_blocks" WHERE "domain_blocks"."domain" IN ($1, $2) ORDER BY CHAR_LENGTH(domain) DESC LIMIT $3  [["domain", "framapiaf.org"], ["domain", "org"], ["LIMIT", 1]]
18:06:13 sidekiq.1 |   ↳ app/models/domain_block.rb:73:in `rule_for'
18:06:13 sidekiq.1 |   CACHE Account Load (0.0ms)  SELECT "accounts"."id", "accounts"."username", "accounts"."domain", "accounts"."private_key", "accounts"."public_key", "accounts"."created_at", "accounts"."updated_at", "accounts"."note", "accounts"."display_name", "accounts"."uri", "accounts"."url", "accounts"."avatar_file_name", "accounts"."avatar_content_type", "accounts"."avatar_file_size", "accounts"."avatar_updated_at", "accounts"."header_file_name", "accounts"."header_content_type", "accounts"."header_file_size", "accounts"."header_updated_at", "accounts"."avatar_remote_url", "accounts"."locked", "accounts"."header_remote_url", "accounts"."last_webfingered_at", "accounts"."inbox_url", "accounts"."outbox_url", "accounts"."shared_inbox_url", "accounts"."followers_url", "accounts"."protocol", "accounts"."memorial", "accounts"."moved_to_account_id", "accounts"."featured_collection_url", "accounts"."fields", "accounts"."actor_type", "accounts"."discoverable", "accounts"."also_known_as", "accounts"."silenced_at", "accounts"."suspended_at", "accounts"."hide_collections", "accounts"."avatar_storage_schema_version", "accounts"."header_storage_schema_version", "accounts"."devices_url", "accounts"."suspension_origin", "accounts"."sensitized_at", "accounts"."trendable", "accounts"."reviewed_at", "accounts"."requested_review_at", "accounts"."indexable" FROM "accounts" WHERE "accounts"."id" = $1 LIMIT $2  [["id", -99], ["LIMIT", 1]]
18:06:13 sidekiq.1 |   ↳ app/models/concerns/account/finder_concern.rb:16:in `representative'
18:06:13 sidekiq.1 | [httplog] GET https://framapiaf.org/users/capitoledulibre/statuses/111444751622813922 completed with status code 200 in 0.062567 seconds
18:06:13 sidekiq.1 |   Account Load (0.2ms)  SELECT "accounts"."id", "accounts"."username", "accounts"."domain", "accounts"."private_key", "accounts"."public_key", "accounts"."created_at", "accounts"."updated_at", "accounts"."note", "accounts"."display_name", "accounts"."uri", "accounts"."url", "accounts"."avatar_file_name", "accounts"."avatar_content_type", "accounts"."avatar_file_size", "accounts"."avatar_updated_at", "accounts"."header_file_name", "accounts"."header_content_type", "accounts"."header_file_size", "accounts"."header_updated_at", "accounts"."avatar_remote_url", "accounts"."locked", "accounts"."header_remote_url", "accounts"."last_webfingered_at", "accounts"."inbox_url", "accounts"."outbox_url", "accounts"."shared_inbox_url", "accounts"."followers_url", "accounts"."protocol", "accounts"."memorial", "accounts"."moved_to_account_id", "accounts"."featured_collection_url", "accounts"."fields", "accounts"."actor_type", "accounts"."discoverable", "accounts"."also_known_as", "accounts"."silenced_at", "accounts"."suspended_at", "accounts"."hide_collections", "accounts"."avatar_storage_schema_version", "accounts"."header_storage_schema_version", "accounts"."devices_url", "accounts"."suspension_origin", "accounts"."sensitized_at", "accounts"."trendable", "accounts"."reviewed_at", "accounts"."requested_review_at", "accounts"."indexable" FROM "accounts" WHERE "accounts"."uri" = $1 LIMIT $2  [["uri", "https://framapiaf.org/users/capitoledulibre"], ["LIMIT", 1]]
18:06:13 sidekiq.1 |   ↳ app/lib/activitypub/tag_manager.rb:185:in `uri_to_resource'
18:06:13 sidekiq.1 |   Status Exists? (0.5ms)  SELECT 1 AS one FROM "statuses" WHERE "statuses"."deleted_at" IS NULL AND "statuses"."uri" = $1 AND "statuses"."account_id" = $2 LIMIT $3  [["uri", "https://framapiaf.org/users/capitoledulibre/statuses/111444751622813922"], ["account_id", 112140666326890329], ["LIMIT", 1]]
18:06:13 sidekiq.1 |   ↳ app/services/activitypub/fetch_remote_status_service.rb:47:in `call'
18:06:13 sidekiq.1 |   Tombstone Exists? (0.7ms)  SELECT 1 AS one FROM "tombstones" WHERE "tombstones"."uri" = $1 LIMIT $2  [["uri", "https://framapiaf.org/users/capitoledulibre/statuses/111444751622813922"], ["LIMIT", 1]]
18:06:13 sidekiq.1 |   ↳ app/lib/activitypub/activity/create.rb:413:in `tombstone_exists?'
18:06:13 sidekiq.1 |   Status Load (0.2ms)  SELECT "statuses".* FROM "statuses" WHERE "statuses"."deleted_at" IS NULL AND "statuses"."uri" = $1 ORDER BY "statuses"."id" DESC LIMIT $2  [["uri", "https://framapiaf.org/users/capitoledulibre/statuses/111444751622813922"], ["LIMIT", 1]]
18:06:13 sidekiq.1 |   ↳ app/lib/activitypub/tag_manager.rb:185:in `uri_to_resource'
18:06:13 sidekiq.1 |   CACHE Status Load (0.0ms)  SELECT "statuses".* FROM "statuses" WHERE "statuses"."deleted_at" IS NULL AND "statuses"."uri" = $1 ORDER BY "statuses"."id" DESC LIMIT $2  [["uri", "https://framapiaf.org/users/capitoledulibre/statuses/111444751622813922"], ["LIMIT", 1]]
18:06:13 sidekiq.1 |   ↳ app/lib/activitypub/activity/create.rb:106:in `find_existing_status'
18:06:13 sidekiq.1 |   TRANSACTION (0.1ms)  BEGIN
18:06:13 sidekiq.1 |   ↳ app/lib/activitypub/activity/create.rb:266:in `block in process_attachments'
18:06:13 sidekiq.1 |   MediaAttachment Create (3.0ms)  INSERT INTO "media_attachments" ("status_id", "file_file_name", "file_content_type", "file_file_size", "file_updated_at", "remote_url", "created_at", "updated_at", "shortcode", "type", "file_meta", "account_id", "description", "scheduled_status_id", "blurhash", "processing", "file_storage_schema_version", "thumbnail_file_name", "thumbnail_content_type", "thumbnail_file_size", "thumbnail_updated_at", "thumbnail_remote_url") VALUES ($1, $2, $3, $4, $5, $6, $7, $8, $9, $10, $11, $12, $13, $14, $15, $16, $17, $18, $19, $20, $21, $22) RETURNING "id"  [["status_id", nil], ["file_file_name", nil], ["file_content_type", nil], ["file_file_size", nil], ["file_updated_at", nil], ["remote_url", "https://stockage.framapiaf.org/framapiaf/media_attachments/files/111/444/720/451/944/855/original/e5f4e2b63f4a549f.jpg"], ["created_at", "2024-03-22 18:06:13.626307"], ["updated_at", "2024-03-22 18:06:13.626307"], ["shortcode", nil], ["type", 3], ["file_meta", "{\"focus\":{\"x\":0.0,\"y\":0.0}}"], ["account_id", 112140666326890329], ["description", "Equipe des bénévoles du Capitole du Libre 2023"], ["scheduled_status_id", nil], ["blurhash", "UMFW%[EL9uRj0#oItQbbO[n$RiWC|[W;NakC"], ["processing", 2], ["file_storage_schema_version", nil], ["thumbnail_file_name", nil], ["thumbnail_content_type", nil], ["thumbnail_file_size", nil], ["thumbnail_updated_at", nil], ["thumbnail_remote_url", nil]]
18:06:13 sidekiq.1 |   ↳ app/lib/activitypub/activity/create.rb:266:in `block in process_attachments'
18:06:13 sidekiq.1 |   TRANSACTION (0.2ms)  COMMIT
18:06:13 sidekiq.1 |   ↳ app/lib/activitypub/activity/create.rb:266:in `block in process_attachments'
18:06:13 sidekiq.1 |   DomainBlock Load (0.2ms)  SELECT "domain_blocks".* FROM "domain_blocks" WHERE "domain_blocks"."domain" IN ($1, $2) ORDER BY CHAR_LENGTH(domain) DESC LIMIT $3  [["domain", "framapiaf.org"], ["domain", "org"], ["LIMIT", 1]]
18:06:13 sidekiq.1 |   ↳ app/models/domain_block.rb:73:in `rule_for'
18:06:13 sidekiq.1 | [httplog] GET https://stockage.framapiaf.org/framapiaf/media_attachments/files/111/444/720/451/944/855/original/e5f4e2b63f4a549f.jpg completed with status code 200 in 0.16764 seconds
18:06:13 sidekiq.1 | [paperclip] Trying to link /tmp/4a7446dc2fd719d24f5218f76a975d7020240322-2871-zymwlc.jpg to /tmp/ecfafadb49bbba6d2b452c2bbd93e48220240322-2871-8pzpjd.jpg
18:06:13 sidekiq.1 | Command :: file -b --mime '/tmp/ecfafadb49bbba6d2b452c2bbd93e48220240322-2871-8pzpjd.jpg'
18:06:13 sidekiq.1 | [paperclip] Trying to link /tmp/4a7446dc2fd719d24f5218f76a975d7020240322-2871-zymwlc.jpg to /tmp/f8ae847c6a536dcb9f87ffe78ad67e0e20240322-2871-k3rl0k.jpg
18:06:13 sidekiq.1 | Command :: identify -format %m '/tmp/f8ae847c6a536dcb9f87ffe78ad67e0e20240322-2871-k3rl0k.jpg[0]'
18:06:13 sidekiq.1 | Command :: convert '/tmp/f8ae847c6a536dcb9f87ffe78ad67e0e20240322-2871-k3rl0k.jpg[0]' -auto-orient -resize "588x392>" -quality 90 +profile "!icc,*" +set date:modify +set date:create +set date:timestamp -define jpeg:dct-method=float '/tmp/e1e63e156689b8d81952fdefd5b112c020240322-2871-ior51w'
18:06:13 sidekiq.1 | Command :: convert '/tmp/e1e63e156689b8d81952fdefd5b112c020240322-2871-ior51w' -depth 8 RGB:-
18:06:14 sidekiq.1 | [paperclip] Trying to link /tmp/e1e63e156689b8d81952fdefd5b112c020240322-2871-ior51w to /tmp/0590999371802b631dc29eba3a8a2d4320240322-2871-vhie0o
18:06:14 sidekiq.1 | [paperclip] Trying to link /tmp/f8ae847c6a536dcb9f87ffe78ad67e0e20240322-2871-k3rl0k.jpg to /tmp/ecfafadb49bbba6d2b452c2bbd93e48220240322-2871-uspdnp.jpg
18:06:14 sidekiq.1 | Command :: file -b --mime '/tmp/ecfafadb49bbba6d2b452c2bbd93e48220240322-2871-uspdnp.jpg'
18:06:14 sidekiq.1 |   TRANSACTION (0.2ms)  BEGIN
18:06:14 sidekiq.1 |   ↳ app/lib/activitypub/activity/create.rb:281:in `block in process_attachments'
18:06:14 sidekiq.1 |   MediaAttachment Update (1.1ms)  UPDATE "media_attachments" SET "file_file_name" = $1, "file_content_type" = $2, "file_file_size" = $3, "file_updated_at" = $4, "updated_at" = $5, "type" = $6, "file_meta" = $7, "blurhash" = $8, "file_storage_schema_version" = $9 WHERE "media_attachments"."id" = $10  [["file_file_name", "6c9a40ff1a77d790.jpg"], ["file_content_type", "image/jpeg"], ["file_file_size", 668960], ["file_updated_at", "2024-03-22 18:06:13.903413"], ["updated_at", "2024-03-22 18:06:14.118749"], ["type", 0], ["file_meta", "{\"focus\":{\"x\":0.0,\"y\":0.0},\"original\":{\"width\":1920,\"height\":1280,\"size\":\"1920x1280\",\"aspect\":1.5},\"small\":{\"width\":588,\"height\":392,\"size\":\"588x392\",\"aspect\":1.5}}"], ["blurhash", "UMFNJHEL9uRj0#oItQbbO[n$RiWC|[W;NakC"], ["file_storage_schema_version", 1], ["id", 112140666380447576]]
18:06:14 sidekiq.1 |   ↳ app/lib/activitypub/activity/create.rb:281:in `block in process_attachments'
18:06:14 sidekiq.1 |   TRANSACTION (0.4ms)  COMMIT
18:06:14 sidekiq.1 |   ↳ app/lib/activitypub/activity/create.rb:281:in `block in process_attachments'
18:06:14 sidekiq.1 |   TRANSACTION (0.1ms)  BEGIN
18:06:14 sidekiq.1 |   ↳ app/lib/activitypub/activity/create.rb:266:in `block in process_attachments'
18:06:14 sidekiq.1 |   MediaAttachment Create (0.8ms)  INSERT INTO "media_attachments" ("status_id", "file_file_name", "file_content_type", "file_file_size", "file_updated_at", "remote_url", "created_at", "updated_at", "shortcode", "type", "file_meta", "account_id", "description", "scheduled_status_id", "blurhash", "processing", "file_storage_schema_version", "thumbnail_file_name", "thumbnail_content_type", "thumbnail_file_size", "thumbnail_updated_at", "thumbnail_remote_url") VALUES ($1, $2, $3, $4, $5, $6, $7, $8, $9, $10, $11, $12, $13, $14, $15, $16, $17, $18, $19, $20, $21, $22) RETURNING "id"  [["status_id", nil], ["file_file_name", nil], ["file_content_type", nil], ["file_file_size", nil], ["file_updated_at", nil], ["remote_url", "https://stockage.framapiaf.org/framapiaf/media_attachments/files/111/444/720/804/944/337/original/c9e95aa36c798499.jpg"], ["created_at", "2024-03-22 18:06:14.128632"], ["updated_at", "2024-03-22 18:06:14.128632"], ["shortcode", nil], ["type", 3], ["file_meta", "{\"focus\":{\"x\":0.0,\"y\":0.0}}"], ["account_id", 112140666326890329], ["description", "Montage photo de scènes du Capitole du Libre 2023"], ["scheduled_status_id", nil], ["blurhash", "U7HnQyMyMy_4EeIpx]%LOY-VtSR*4.R%$%rr"], ["processing", 2], ["file_storage_schema_version", nil], ["thumbnail_file_name", nil], ["thumbnail_content_type", nil], ["thumbnail_file_size", nil], ["thumbnail_updated_at", nil], ["thumbnail_remote_url", nil]]
18:06:14 sidekiq.1 |   ↳ app/lib/activitypub/activity/create.rb:266:in `block in process_attachments'
18:06:14 sidekiq.1 |   TRANSACTION (0.1ms)  COMMIT
18:06:14 sidekiq.1 |   ↳ app/lib/activitypub/activity/create.rb:266:in `block in process_attachments'
18:06:14 sidekiq.1 | [httplog] GET https://stockage.framapiaf.org/framapiaf/media_attachments/files/111/444/720/804/944/337/original/c9e95aa36c798499.jpg completed with status code 200 in 0.376908 seconds
18:06:14 sidekiq.1 | [paperclip] Trying to link /tmp/8ed1c42b984c8b8d7a6d91c8010a8cab20240322-2871-uwn20l.jpg to /tmp/62382c34a786a981dcc851e6e419c69e20240322-2871-yp57h9.jpg
18:06:14 sidekiq.1 | Command :: file -b --mime '/tmp/62382c34a786a981dcc851e6e419c69e20240322-2871-yp57h9.jpg'
18:06:14 sidekiq.1 | [paperclip] Trying to link /tmp/8ed1c42b984c8b8d7a6d91c8010a8cab20240322-2871-uwn20l.jpg to /tmp/0ec0635785d30a9ef4a1ec2dfdb1e6fd20240322-2871-bvwr6v.jpg
18:06:14 sidekiq.1 | Command :: identify -format %m '/tmp/0ec0635785d30a9ef4a1ec2dfdb1e6fd20240322-2871-bvwr6v.jpg[0]'
18:06:14 sidekiq.1 | Command :: convert '/tmp/0ec0635785d30a9ef4a1ec2dfdb1e6fd20240322-2871-bvwr6v.jpg[0]' -auto-orient -resize "640x360>" -quality 90 +profile "!icc,*" +set date:modify +set date:create +set date:timestamp -define jpeg:dct-method=float '/tmp/6e1494a2562abc1265b1128c09a4554e20240322-2871-zwm9h'
18:06:14 sidekiq.1 | Command :: convert '/tmp/6e1494a2562abc1265b1128c09a4554e20240322-2871-zwm9h' -depth 8 RGB:-
18:06:14 sidekiq.1 | [paperclip] Trying to link /tmp/6e1494a2562abc1265b1128c09a4554e20240322-2871-zwm9h to /tmp/b865aa613d20dd93becd9bff580136e620240322-2871-9zbp0f
18:06:14 sidekiq.1 | [paperclip] Trying to link /tmp/0ec0635785d30a9ef4a1ec2dfdb1e6fd20240322-2871-bvwr6v.jpg to /tmp/62382c34a786a981dcc851e6e419c69e20240322-2871-u0mtdx.jpg
18:06:14 sidekiq.1 | Command :: file -b --mime '/tmp/62382c34a786a981dcc851e6e419c69e20240322-2871-u0mtdx.jpg'
18:06:14 sidekiq.1 |   TRANSACTION (0.1ms)  BEGIN
18:06:14 sidekiq.1 |   ↳ app/lib/activitypub/activity/create.rb:281:in `block in process_attachments'
18:06:14 sidekiq.1 |   MediaAttachment Update (0.8ms)  UPDATE "media_attachments" SET "file_file_name" = $1, "file_content_type" = $2, "file_file_size" = $3, "file_updated_at" = $4, "updated_at" = $5, "type" = $6, "file_meta" = $7, "blurhash" = $8, "file_storage_schema_version" = $9 WHERE "media_attachments"."id" = $10  [["file_file_name", "14a466e322f5ab44.jpg"], ["file_content_type", "image/jpeg"], ["file_file_size", 1242335], ["file_updated_at", "2024-03-22 18:06:14.639873"], ["updated_at", "2024-03-22 18:06:14.912247"], ["type", 0], ["file_meta", "{\"focus\":{\"x\":0.0,\"y\":0.0},\"original\":{\"width\":3840,\"height\":2160,\"size\":\"3840x2160\",\"aspect\":1.7777777777777777},\"small\":{\"width\":640,\"height\":360,\"size\":\"640x360\",\"aspect\":1.7777777777777777}}"], ["blurhash", "U7HUOhMyMy_4EeIpx]%LOY-VtSR*4.R%$%rr"], ["file_storage_schema_version", 1], ["id", 112140666413373366]]
18:06:14 sidekiq.1 |   ↳ app/lib/activitypub/activity/create.rb:281:in `block in process_attachments'
18:06:14 sidekiq.1 |   TRANSACTION (0.3ms)  COMMIT
18:06:14 sidekiq.1 |   ↳ app/lib/activitypub/activity/create.rb:281:in `block in process_attachments'
18:06:14 sidekiq.1 |   Conversation Load (0.1ms)  SELECT "conversations".* FROM "conversations" WHERE "conversations"."uri" = $1 LIMIT $2  [["uri", "tag:framapiaf.org,2023-11-20:objectId=92302330:objectType=Conversation"], ["LIMIT", 1]]
18:06:14 sidekiq.1 |   ↳ app/lib/activitypub/activity/create.rb:353:in `conversation_from_uri'
18:06:14 sidekiq.1 |   TRANSACTION (0.0ms)  BEGIN
18:06:14 sidekiq.1 |   ↳ app/lib/activitypub/activity/create.rb:353:in `conversation_from_uri'
18:06:14 sidekiq.1 |   Conversation Exists? (0.1ms)  SELECT 1 AS one FROM "conversations" WHERE "conversations"."uri" = $1 LIMIT $2  [["uri", "tag:framapiaf.org,2023-11-20:objectId=92302330:objectType=Conversation"], ["LIMIT", 1]]
18:06:14 sidekiq.1 |   ↳ app/lib/activitypub/activity/create.rb:353:in `conversation_from_uri'
18:06:14 sidekiq.1 |   Conversation Create (0.8ms)  INSERT INTO "conversations" ("uri", "created_at", "updated_at") VALUES ($1, $2, $3) RETURNING "id"  [["uri", "tag:framapiaf.org,2023-11-20:objectId=92302330:objectType=Conversation"], ["created_at", "2024-03-22 18:06:14.928294"], ["updated_at", "2024-03-22 18:06:14.928294"]]
18:06:14 sidekiq.1 |   ↳ app/lib/activitypub/activity/create.rb:353:in `conversation_from_uri'
18:06:14 sidekiq.1 |   TRANSACTION (0.1ms)  COMMIT
18:06:14 sidekiq.1 |   ↳ app/lib/activitypub/activity/create.rb:353:in `conversation_from_uri'
18:06:14 sidekiq.1 |   Account Load (0.3ms)  SELECT "accounts"."id", "accounts"."username", "accounts"."domain", "accounts"."private_key", "accounts"."public_key", "accounts"."created_at", "accounts"."updated_at", "accounts"."note", "accounts"."display_name", "accounts"."uri", "accounts"."url", "accounts"."avatar_file_name", "accounts"."avatar_content_type", "accounts"."avatar_file_size", "accounts"."avatar_updated_at", "accounts"."header_file_name", "accounts"."header_content_type", "accounts"."header_file_size", "accounts"."header_updated_at", "accounts"."avatar_remote_url", "accounts"."locked", "accounts"."header_remote_url", "accounts"."last_webfingered_at", "accounts"."inbox_url", "accounts"."outbox_url", "accounts"."shared_inbox_url", "accounts"."followers_url", "accounts"."protocol", "accounts"."memorial", "accounts"."moved_to_account_id", "accounts"."featured_collection_url", "accounts"."fields", "accounts"."actor_type", "accounts"."discoverable", "accounts"."also_known_as", "accounts"."silenced_at", "accounts"."suspended_at", "accounts"."hide_collections", "accounts"."avatar_storage_schema_version", "accounts"."header_storage_schema_version", "accounts"."devices_url", "accounts"."suspension_origin", "accounts"."sensitized_at", "accounts"."trendable", "accounts"."reviewed_at", "accounts"."requested_review_at", "accounts"."indexable" FROM "accounts" WHERE "accounts"."uri" = $1 LIMIT $2  [["uri", "https://framapiaf.org/users/capitoledulibre/followers"], ["LIMIT", 1]]
18:06:14 sidekiq.1 |   ↳ app/lib/activitypub/tag_manager.rb:185:in `uri_to_resource'
18:06:14 sidekiq.1 |   TRANSACTION (0.1ms)  BEGIN
18:06:14 sidekiq.1 |   ↳ app/lib/activitypub/activity/create.rb:86:in `block in process_status'
18:06:14 sidekiq.1 |   MediaAttachment Load (0.8ms)  SELECT "media_attachments".* FROM "media_attachments" WHERE "media_attachments"."id" IN ($1, $2)  [["id", 112140666380447576], ["id", 112140666413373366]]
18:06:14 sidekiq.1 |   ↳ app/lib/activitypub/activity/create.rb:86:in `block in process_status'
18:06:14 sidekiq.1 |   Account Load (0.2ms)  SELECT "accounts"."id", "accounts"."username", "accounts"."domain", "accounts"."private_key", "accounts"."public_key", "accounts"."created_at", "accounts"."updated_at", "accounts"."note", "accounts"."display_name", "accounts"."uri", "accounts"."url", "accounts"."avatar_file_name", "accounts"."avatar_content_type", "accounts"."avatar_file_size", "accounts"."avatar_updated_at", "accounts"."header_file_name", "accounts"."header_content_type", "accounts"."header_file_size", "accounts"."header_updated_at", "accounts"."avatar_remote_url", "accounts"."locked", "accounts"."header_remote_url", "accounts"."last_webfingered_at", "accounts"."inbox_url", "accounts"."outbox_url", "accounts"."shared_inbox_url", "accounts"."followers_url", "accounts"."protocol", "accounts"."memorial", "accounts"."moved_to_account_id", "accounts"."featured_collection_url", "accounts"."fields", "accounts"."actor_type", "accounts"."discoverable", "accounts"."also_known_as", "accounts"."silenced_at", "accounts"."suspended_at", "accounts"."hide_collections", "accounts"."avatar_storage_schema_version", "accounts"."header_storage_schema_version", "accounts"."devices_url", "accounts"."suspension_origin", "accounts"."sensitized_at", "accounts"."trendable", "accounts"."reviewed_at", "accounts"."requested_review_at", "accounts"."indexable" FROM "accounts" WHERE "accounts"."id" = $1 LIMIT $2  [["id", 112140666326890329], ["LIMIT", 1]]
18:06:14 sidekiq.1 |   ↳ app/lib/activitypub/activity/create.rb:86:in `block in process_status'
18:06:14 sidekiq.1 |   CACHE Account Load (0.0ms)  SELECT "accounts"."id", "accounts"."username", "accounts"."domain", "accounts"."private_key", "accounts"."public_key", "accounts"."created_at", "accounts"."updated_at", "accounts"."note", "accounts"."display_name", "accounts"."uri", "accounts"."url", "accounts"."avatar_file_name", "accounts"."avatar_content_type", "accounts"."avatar_file_size", "accounts"."avatar_updated_at", "accounts"."header_file_name", "accounts"."header_content_type", "accounts"."header_file_size", "accounts"."header_updated_at", "accounts"."avatar_remote_url", "accounts"."locked", "accounts"."header_remote_url", "accounts"."last_webfingered_at", "accounts"."inbox_url", "accounts"."outbox_url", "accounts"."shared_inbox_url", "accounts"."followers_url", "accounts"."protocol", "accounts"."memorial", "accounts"."moved_to_account_id", "accounts"."featured_collection_url", "accounts"."fields", "accounts"."actor_type", "accounts"."discoverable", "accounts"."also_known_as", "accounts"."silenced_at", "accounts"."suspended_at", "accounts"."hide_collections", "accounts"."avatar_storage_schema_version", "accounts"."header_storage_schema_version", "accounts"."devices_url", "accounts"."suspension_origin", "accounts"."sensitized_at", "accounts"."trendable", "accounts"."reviewed_at", "accounts"."requested_review_at", "accounts"."indexable" FROM "accounts" WHERE "accounts"."id" = $1 LIMIT $2  [["id", 112140666326890329], ["LIMIT", 1]]
18:06:14 sidekiq.1 |   ↳ app/lib/activitypub/activity/create.rb:86:in `block in process_status'
18:06:14 sidekiq.1 |   Status Exists? (0.2ms)  SELECT 1 AS one FROM "statuses" WHERE "statuses"."uri" = $1 LIMIT $2  [["uri", "https://framapiaf.org/users/capitoledulibre/statuses/111444751622813922"], ["LIMIT", 1]]
18:06:14 sidekiq.1 |   ↳ app/lib/activitypub/activity/create.rb:86:in `block in process_status'
18:06:14 sidekiq.1 |   Status Create (1.1ms)  INSERT INTO "statuses" ("id", "uri", "text", "created_at", "updated_at", "in_reply_to_id", "reblog_of_id", "url", "sensitive", "visibility", "spoiler_text", "reply", "language", "conversation_id", "local", "account_id", "application_id", "in_reply_to_account_id", "poll_id", "deleted_at", "edited_at", "trendable", "ordered_media_attachment_ids") VALUES ($1, $2, $3, $4, $5, $6, $7, $8, $9, $10, $11, $12, $13, $14, $15, $16, $17, $18, $19, $20, $21, $22, $23) RETURNING "id"  [["id", 111444751620731959], ["uri", "https://framapiaf.org/users/capitoledulibre/statuses/111444751622813922"], ["text", "<p>Merci à tous: public, speakers, stands et bien sûr bénévoles d&#39;avoir permis cette nouvelle édition du Capitole du Libre!<br />Les photos et vidéos arrivent bientôt!</p>"], ["created_at", "2023-11-20 20:25:57"], ["updated_at", "2024-03-22 18:06:14.967406"], ["in_reply_to_id", nil], ["reblog_of_id", nil], ["url", "https://framapiaf.org/@capitoledulibre/111444751622813922"], ["sensitive", false], ["visibility", 0], ["spoiler_text", ""], ["reply", false], ["language", "fr"], ["conversation_id", 2], ["local", false], ["account_id", 112140666326890329], ["application_id", nil], ["in_reply_to_account_id", nil], ["poll_id", nil], ["deleted_at", nil], ["edited_at", nil], ["trendable", nil], ["ordered_media_attachment_ids", "{112140666380447576,112140666413373366}"]]
18:06:14 sidekiq.1 |   ↳ app/models/concerns/status/safe_reblog_insert.rb:19:in `_insert_record'
18:06:14 sidekiq.1 |   MediaAttachment Update (0.3ms)  UPDATE "media_attachments" SET "status_id" = $1, "updated_at" = $2 WHERE "media_attachments"."id" = $3  [["status_id", 111444751620731959], ["updated_at", "2024-03-22 18:06:14.969904"], ["id", 112140666380447576]]
18:06:14 sidekiq.1 |   ↳ app/lib/activitypub/activity/create.rb:86:in `block in process_status'
18:06:14 sidekiq.1 |   MediaAttachment Update (0.2ms)  UPDATE "media_attachments" SET "status_id" = $1, "updated_at" = $2 WHERE "media_attachments"."id" = $3  [["status_id", 111444751620731959], ["updated_at", "2024-03-22 18:06:14.971099"], ["id", 112140666413373366]]
18:06:14 sidekiq.1 |   ↳ app/lib/activitypub/activity/create.rb:86:in `block in process_status'
18:06:14 sidekiq.1 |   Tag Load (0.2ms)  SELECT "tags".* FROM "tags" INNER JOIN "statuses_tags" ON "tags"."id" = "statuses_tags"."tag_id" WHERE "statuses_tags"."status_id" = $1  [["status_id", 111444751620731959]]
18:06:14 sidekiq.1 |   ↳ app/models/trends/tags.rb:17:in `register'
18:06:14 sidekiq.1 |   TRANSACTION (0.2ms)  COMMIT
18:06:14 sidekiq.1 |   ↳ app/lib/activitypub/activity/create.rb:85:in `process_status'
18:06:14 sidekiq.1 |   SQL (0.3ms)  INSERT INTO account_stats(account_id, statuses_count, created_at, updated_at, last_status_at) VALUES (112140666326890329, 1, now(), now(), now()) ON CONFLICT (account_id) DO UPDATE SET statuses_count = account_stats.statuses_count + 1, last_status_at = now(), updated_at = now() RETURNING id;
18:06:14 sidekiq.1 |   ↳ app/models/concerns/account/counters.rb:67:in `update_count!'
18:06:14 sidekiq.1 | Cache delete: v3:statuses/111444751620731959
18:06:14 sidekiq.1 | Cache delete: v3:statuses/111444751620731959
18:06:14 sidekiq.1 |   StatusPin Pluck (0.2ms)  SELECT "status_pins"."status_id" FROM "status_pins" WHERE "status_pins"."account_id" = $1  [["account_id", 112140666326890329]]
18:06:14 sidekiq.1 |   ↳ app/services/activitypub/fetch_featured_collection_service.rb:65:in `process_note_items'
18:06:14 sidekiq.1 |   TRANSACTION (0.0ms)  BEGIN
18:06:14 sidekiq.1 |   ↳ app/services/activitypub/fetch_featured_collection_service.rb:76:in `block in process_note_items'
18:06:14 sidekiq.1 |   Status Load (0.1ms)  SELECT "statuses".* FROM "statuses" WHERE "statuses"."deleted_at" IS NULL AND "statuses"."id" = $1 ORDER BY "statuses"."id" DESC LIMIT $2  [["id", 111444751620731959], ["LIMIT", 1]]
18:06:14 sidekiq.1 |   ↳ app/services/activitypub/fetch_featured_collection_service.rb:76:in `block in process_note_items'
18:06:14 sidekiq.1 |   StatusPin Count (0.2ms)  SELECT COUNT(*) FROM "status_pins" WHERE "status_pins"."account_id" = $1  [["account_id", 112140666326890329]]
18:06:14 sidekiq.1 |   ↳ app/validators/status_pin_validator.rb:10:in `validate'
18:06:14 sidekiq.1 |   StatusPin Create (1.2ms)  INSERT INTO "status_pins" ("account_id", "status_id", "created_at", "updated_at") VALUES ($1, $2, $3, $4) RETURNING "id", "created_at", "updated_at"  [["account_id", 112140666326890329], ["status_id", 111444751620731959], ["created_at", "2024-03-22 18:06:14.989798"], ["updated_at", "2024-03-22 18:06:14.989798"]]
18:06:14 sidekiq.1 |   ↳ app/services/activitypub/fetch_featured_collection_service.rb:76:in `block in process_note_items'
18:06:14 sidekiq.1 |   TRANSACTION (0.2ms)  COMMIT
18:06:14 sidekiq.1 |   ↳ app/services/activitypub/fetch_featured_collection_service.rb:76:in `block in process_note_items'
18:06:14 sidekiq.1 | 2024-03-22T18:06:14.993Z pid=2871 tid=ofr class=ActivityPub::SynchronizeFeaturedCollectionWorker jid=495acbc164c4f7cd5eefd37f elapsed=1.697 INFO: done

Et là ça marche ! Le compte est bien ensuite accessible à http://mastodon.local:3000/@capitoledulibre@framapiaf.org. >_<"

Donc j’ai plus qu’à étudier les logs maintenant pour comprendre ce qui se passe.

Ma première piste étant EC vs RSA, je vais voir si LetsEncrypt me permet de choisir l’algo.

+0 -0

J’ai une autre theorie.

@chef@cha-cu.it date de quelques années maintenant. Donc suremnet indexé à plein d’endroits

en comparant les JSON, je vois plusieurs clés de plus comme:


  "featured": "https://mastodon.social/users/AmarOk/collections/featured",
  "featuredTags": "https://mastodon.social/users/AmarOk/collections/tags",
  "indexable": false,
  "memorial": false,

Probable que le profile s’attende à avoir ca maintenant sur mastodon.

Quick and dirty patch:

 chactivityserver/src/profile.rs | 8 ++++++++
 1 file changed, 8 insertions(+)

diff --git a/chactivityserver/src/profile.rs b/chactivityserver/src/profile.rs
index 5591bda..c3a8580 100644
--- a/chactivityserver/src/profile.rs
+++ b/chactivityserver/src/profile.rs
@@ -53,6 +53,8 @@ impl Profile {
           ],
           "id": format!("https://{}/users/{}", self.config.domain, self.config.user),
           "type": "Person",
+          "memorial": false,
+          "indexable": false,
           "following": format!("https://{}/users/{}/following", self.config.domain, self.config.user),
           "followers": format!("https://{}/users/{}/followers", self.config.domain, self.config.user),
           "inbox": format!("https://{}/users/{}/inbox", self.config.domain, self.config.user),
@@ -98,6 +100,10 @@ impl Profile {
         json!({
             "manuallyApprovesFollowers": "as:manuallyApprovesFollowers",
             "toot": "http://joinmastodon.org/ns#",
+            "featured": {
+              "@id": "toot:featured",
+              "@type": "@id"
+            },
             "featuredTags": {
               "@id": "toot:featuredTags",
               "@type": "@id"
@@ -141,6 +147,8 @@ impl Profile {
             "messageType": "toot:messageType",
             "cipherText": "toot:cipherText",
             "suspended": "toot:suspended",
+            "memorial": "toot:memorial",
+            "indexable": "toot:indexable",
             "focalPoint": {
               "@container": "@list",
               "@id": "toot:focalPoint"

Si tu veux test

Dans ce cas, ca demanderais des changements dans profile.rs

+0 -0
Connectez-vous pour pouvoir poster un message.
Connexion

Pas encore membre ?

Créez un compte en une minute pour profiter pleinement de toutes les fonctionnalités de Zeste de Savoir. Ici, tout est gratuit et sans publicité.
Créer un compte