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/:idpara verificar o campodeleted_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.
- 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, emhttps://mastodon.social/@username/109876543210987654, o ID é109876543210987654. - 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. - Inspecionar a resposta JSON
Procure por"deleted_at". Se o valor fornull, 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.