Mastodon ‘Status Already Deleted’ ao Tentar Editar: Causas
🔍 WiseChecker

Mastodon ‘Status Already Deleted’ ao Tentar Editar: Causas

Você tenta editar um post no Mastodon e vê a mensagem de erro Status Already Deleted. Isso acontece mesmo quando o post ainda está visível no seu perfil e na sua timeline. O erro não é causado por você ter excluído o post manualmente. Ele é acionado por uma incompatibilidade específica entre como o Mastodon lida com edições de postagens e como ele armazena dados em cache entre servidores. Este artigo explica a causa raiz do erro Status Already Deleted, por que ele aparece apenas em certos posts e como verificar se um post é realmente editável.

Principais Conclusões: Erro Status Already Deleted no Mastodon

  • Visibilidade vs editabilidade: Um post visível pode ainda estar marcado como excluído no banco de dados devido a uma condição de corrida no servidor durante a propagação da edição.
  • Conflitos de edição federada: Quando uma instância remota falha ao processar uma atualização de edição, o Mastodon marca a cópia local como excluída para evitar corrupção de dados.
  • Verificação via API: Use o endpoint da API do Mastodon /api/v1/statuses/:id para verificar o campo deleted_at — se contiver um timestamp, o post está permanentemente bloqueado para edições.

Por que o Mastodon Mostra Status Already Deleted ao Tentar Editar

O Mastodon usa uma arquitetura orientada a eventos para edições de posts. Quando você edita um post, o servidor transmite uma atividade Update para todas as instâncias federadas. Cada instância que recebeu o post original deve processar a edição e atualizar sua cópia local. Se alguma instância falhar ao aplicar a edição — por exemplo, devido a um timeout de rede ou conflito de banco de dados — o Mastodon marca a cópia desse post na instância como deleted no banco de dados local. Isso é um mecanismo de segurança. O Mastodon não permite editar um post que foi marcado como excluído, pois a operação de edição tentaria modificar um registro que o servidor considera removido.

O erro é mais comum quando você edita um post logo após publicá-lo. O post original ainda está sendo federado para servidores remotos. Se você enviar uma edição antes que o post original tenha sido totalmente propagado, algumas instâncias remotas podem receber a edição antes de receber o original. Essas instâncias criam um registro provisório para o post e imediatamente o marcam como excluído quando a edição não pode ser associada a uma cópia local existente. Depois, quando você tenta editar o mesmo post a partir da sua instância de origem, o servidor verifica seu banco de dados local e encontra o campo deleted_at preenchido. Ele retorna o erro Status Already Deleted.

Condição de Corrida no Servidor Durante a Propagação da Edição

O Mastodon processa atividades recebidas em uma fila. Quando uma atividade Update chega para um post que ainda não foi totalmente armazenado, o servidor cria um registro provisório e tenta buscar o conteúdo completo do post. Se a busca falhar ou expirar, o registro provisório permanece com um timestamp em deleted_at. Essa condição de corrida é mais provável em instâncias pequenas ou sobrecarregadas, onde o processamento da fila está atrasado. O erro não é um bug no sentido tradicional. É uma escolha de design deliberada para evitar inconsistência de dados no fediverso.

Como Verificar se um Post Está Realmente Excluído

Você pode confirmar o status de um post sem depender da mensagem de erro. Abra um navegador e visite a seguinte URL, substituindo sua-instancia.com pelo domínio da sua instância do Mastodon e POST_ID pelo ID numérico do post:

https://sua-instancia.com/api/v1/statuses/POST_ID

A API retorna um objeto JSON. Procure pelo campo deleted_at. Se mostrar null, o post é editável. Se contiver um timestamp como 2025-03-15T10:30:00.000Z, o post está marcado como excluído e não pode ser editado. Você também pode verificar o campo visibility. Um post ainda visível no seu perfil mostrará public, unlisted, followers-only ou direct. O campo deleted_at é o indicador definitivo.

  1. Obter o ID do post
    Abra o post no navegador. A URL contém o ID do post após a última barra. Por exemplo, em https://mastodon.social/@username/109876543210987654, o ID é 109876543210987654.
  2. Chamar o endpoint da API
    Cole a URL da API na barra de endereços do navegador. Certifique-se de estar logado na sua instância na mesma sessão do navegador.
  3. Inspecionar a resposta JSON
    Procure por "deleted_at". Se o valor for null, o post é editável. Se contiver uma string de data, o post está bloqueado.

Padrões de Falha Relacionados e Suas Causas

Botão de Edição Desabilitado em um Post Visível

O botão de edição pode aparecer desabilitado na interface web do Mastodon mesmo que o post esteja visível. Isso acontece quando o JavaScript do lado do cliente verifica o campo deleted_at antes de habilitar o botão de edição. A mesma condição de corrida que aciona o erro na API também desabilita o botão. Atualizar a página ou limpar o cache do navegador não altera o status. O post está bloqueado no servidor.

Post Desaparece Após Tentativa de Edição

Em casos raros, tentar editar um post marcado como excluído faz com que o post desapareça completamente do seu perfil. Isso ocorre quando a solicitação de edição aciona uma rotina de limpeza que remove o registro órfão. O post não pode ser recuperado pela interface web. Você deve usar a API do Mastodon com uma solicitação GET para /api/v1/statuses/:id para verificar se o post ainda existe. Se a API retornar um erro 404, o post foi removido.

Erro Aparece Apenas em Instâncias Remotas

O erro Status Already Deleted pode aparecer quando você tenta editar um post a partir da interface web de uma instância remota. Isso é comportamento esperado. O Mastodon só permite editar um post a partir da instância onde ele foi originalmente criado. Instâncias remotas armazenam uma cópia somente leitura. Se você tentar editar a partir de uma instância remota, o servidor retorna o erro porque a cópia local não é a fonte autoritativa. Sempre edite posts a partir da sua instância de origem.

Item Post Editável Post Excluído
Campo deleted_at na API null String de timestamp
Botão de edição na interface web Habilitado (azul) Desabilitado ou ausente
Visibilidade do post no perfil Visível Visível ou invisível
Editar a partir de instância remota Não permitido Não permitido
Método de recuperação Edição normal Excluir e republicar

Agora você pode identificar a causa exata do erro Status Already Deleted verificando o campo deleted_at através da API do Mastodon. Se o post estiver bloqueado, a única solução prática é excluir o post e criar um novo com o conteúdo corrigido. Para evitar esse erro no futuro, aguarde pelo menos 30 segundos após publicar antes de editar um post. Esse atraso dá tempo para a fila de federação propagar o post original para todas as instâncias remotas. Para posts que recebem muito engajamento, considere usar o recurso de postagem agendada do Mastodon para compor e revisar o conteúdo antes de publicá-lo.