1
resposta

[Dúvida] erro 500

Insira aqui a descrição dessa imagem para ajudar na acessibilidade ola O objetivo é:

Cadastrar um usuário (/registrar)

Fazer login

Obter o token JWT

Seguir para a etapa de autenticação em dois fatores (2FA)

Porém, ao tentar cadastrar um usuário, a aplicação retorna erro 500.

1 resposta

Ola!

O erro não é do Insomnia nem do endpoint em si, é um problema diretamente no banco / mapeamento JPA.

O erro que aparece é este (resumindo):

Unknown column a2fativa in field list
insert into usuarios (a2fativa, ativo, ...)

Isso significa que o Hibernate/JPA está tentando inserir um campo chamado a2fativa, mas essa coluna não existe na tabela usuarios no banco de dados.

No seu código Java, você tem algo como:

@Entity
@Table(name = "usuarios")
public class Usuario {

    private Boolean a2fAtiva;
    ...
}

E o Hibernate está convertendo isso para a coluna:

a2fativa

Porém, no banco de dados, essa coluna não existe (ou tem outro nome).

Resultado:
Quando você chama /registrar, o Spring tenta salvar o usuário → gera o INSERT → o banco rejeita → erro 500.

Por que isso aparece justo nessa etapa do curso?

Nesse capítulo de 2FA, normalmente acontece uma destas situações:

  1. O curso adiciona um novo atributo na entidade (a2fAtiva, secret, verificado, etc)
  2. Mas a migration (Flyway) não foi criada ou não foi executada
  3. Ou o banco já existia antes e ficou desatualizado em relação à entidade

Esse erro é clássico de entidade ≠ banco fora de sincronia.

Ajustar o banco
Verifique sua tabela usuarios. Ela precisa ter algo como:

ALTER TABLE usuarios
ADD COLUMN a2fativa BOOLEAN;

Ou, se o curso usa Flyway, criar uma migration do tipo:

V3__adiciona_coluna_a2fativa.sql

com o conteúdo adequado.

O nome da coluna precisa bater exatamente com o que o Hibernate espera.

Por que o erro aparece como 500?

Porque é uma exceção não tratada do banco de dados durante o INSERT.
O Spring transforma isso em Internal Server Error.

Ou seja:
O endpoint está correto, o JSON está correto, o problema é estrutural.