Tenho esse mecanismo customizado onde tento dar throw quando ele nao acha o usuario visando abortar que a etapa do processo seja avançada, porem o throw nao funciona dentro do mecanismo parece.
Usei poucas vezes o mecanismo de atribuição customizado, mas é estranho um throw nele não influenciar em nada. Talvez ele simplesmente reconheça como vazio e aí mande direto pro gestor né.
Aqui, quando quero bloquear o envio por estar faltando algo que não dá pra determinar só no formulário, eu valido no evento de processo beforeStateEntry.
Uso bastante pra validar se foi inserido um anexo específico dependendo da próxima atividade selecionada.