Erros de Funcionalidade (Nível de Regra de Negócio)
Erros de funcionalidade ocorrem quando o usuário tenta realizar uma ação que, embora tecnicamente possível, viola uma regra de negócio ou encontra um conflito no estado atual do sistema.
O que são?
Diferente dos erros de aplicação, aqui o sistema está online, mas a ação específica falhou por motivos lógicos.
- Tentativa de agendar consulta em um horário que acabou de ser ocupado (Conflito 409).
- Usuário com múltiplos perfis tentando acessar área restrita sem selecionar o perfil correto.
- Limite de tentativas de upload atingido.
- Pagamento recusado pela operadora.
- Documento CPF já cadastrado no sistema.
Como pensar o Design?
O design aqui deve ser explicativo e orientador. O usuário não deve apenas saber que falhou, mas por que falhou e como resolver.
1. Diálogos de Resolução (Dialogs)
Se o erro exige uma escolha do usuário (ex: múltiplos perfis), use um Modal/Dialog que apresente as opções de correção imediatamente.
2. Banners de Contexto
Se o erro não impede o uso da tela, mas invalida a ação (ex: CPF já cadastrado), um banner no topo da área de conteúdo é mais eficaz que um Toast, pois permanece visível enquanto o usuário decide o que fazer.
3. Feedback Progressivo
Se o usuário está em um formulário de várias etapas, não espere até o final para mostrar erros de negócio que poderiam ter sido validados antes.
Exemplos Práticos
✅ Como fazer
- Múltiplos Perfis: "Identificamos que você possui acesso como Médico e Administrador. Para acessar este relatório, selecione seu perfil de Administrador." [Botão: Alternar Perfil].
- Horário Ocupado: "Infelizmente este horário não está mais disponível. Selecionamos o próximo horário vago para você às 10:30. Deseja confirmar?"
- CPF Duplicado: "Este CPF já possui um cadastro ativo. Deseja recuperar sua senha ou entrar em contato com o suporte?"
❌ Como não fazer
- Culpar o usuário: "Você inseriu dados inválidos". Prefira "Os dados inseridos não conferem com nossos registros".
- Genericismo: "Ocorreu um erro ao salvar". O usuário fica sem saber se deve tentar de novo ou se o dado já foi salvo.
- Esconder a solução: Mostrar o erro e obrigar o usuário a sair da tela, procurar o menu e resolver manualmente o que o sistema já sabe como resolver.
O Impacto no Produto
Erros de funcionalidade bem tratados aumentam a taxa de conversão. Um usuário que recebe uma sugestão de novo horário após um conflito tem muito mais chances de agendar do que um que recebe apenas um "Erro 409".