O replace(/\D/g) junta duas limpezas que deixaram de ser a mesma coisa. Máscara (ponto, barra, traço) e "só dígitos" eram o mesmo gesto enquanto o CNPJ era numérico. Agora não. Um helper compartilhado com o CPF continua certo para o CPF e apaga letra válida no CNPJ. O que sobra tem tamanho errado, a validação recusa, e nenhuma exceção foi lançada. O chamado de suporte nasce exatamente aí.
1