Produtos digitais — problemas e limitações
Diagnóstico e limitações conhecidas em 02/11/2026.
A aba Conteúdo ou Participantes dá erro de permissão
A API responde 403 (PROFILE_MISMATCH_OR_NO_PERMISSION) quando o perfil não tem as permissões novas. Elas existem no catálogo de permissões, mas cada perfil guarda a própria cópia, e perfis criados antes do recurso não as recebem sozinhos.
| Permissão | Empresa | Colaborador | Cliente |
|---|---|---|---|
Conteúdo de Produtos Digitais (productContent) | apagar | apagar | — |
Participantes de Produtos Digitais (enrollment) | apagar | escrever | ler |
Certificados (certificate) | apagar | escrever | ler |
aviso
npm run permissions na pepper-api também roda write_default_permissions, que substitui as permissões de todos os perfis pelo padrão e apaga personalizações. Para liberar só as permissões novas, use uma migração que acrescente as três entradas a quem não as tem.
Não consigo salvar
| Sintoma | O que conferir |
|---|---|
| "Formato" obrigatório | Escolha Curso, Mentoria ou Canal de materiais. |
productUnit obrigatório ao criar | Corrigido em 01/11/2026 no formulário de cadastro; atualize o front. |
COURSE_NEEDS_MODULE | Crie um módulo antes de adicionar itens ao curso. |
UPLOAD_TOO_LARGE / UPLOAD_MIME_NOT_ALLOWED | Tamanho e formato por tipo em Conteúdo. |
| Envio de arquivo bloqueado no navegador | O armazenamento precisa de CORS liberando envio da origem do front (infraestrutura). |
O aluno não vê o conteúdo
| Situação | Verificação |
|---|---|
| Não aparece em Meus Conteúdos | Pedido pago? Comprou logado com a mesma conta? Senão, conceda em Participantes ou peça o resgate do código. |
| Item com cadeado | Liberar em ordem e item obrigatório anterior não concluído, ou módulo com liberação programada. |
| "Conteúdo indisponível" | Item com arquivo pendente, acesso revogado ou expirado. |
| PDF não abre no app | O armazenamento precisa de CORS de leitura para o visualizador interno. |
| Aba Conteúdos ausente no app | features.learning desligado na marca. |
Código de acesso não resgata
| Mensagem | Causa |
|---|---|
| Código inválido | Formato diferente de AC-XXXXX-XXXXX. |
| Não encontramos esse código | Código inexistente. |
| Já foi usado por outra conta | Resgatado por outra pessoa. |
| Não está mais válido | Pedido cancelado/estornado. |
| Cadastre um celular | A conta não tem celular. |
| Muitas tentativas | Limite de 10 por minuto. |
Limitações atuais
- Sem HLS/CDN, relatórios de consumo detalhados, modo offline no app ou cotas — dependem da escolha de provedor de vídeo.
- Notificações de acesso liberado, certificado emitido e encontro próximo: o app já sabe abri-las, mas a API ainda não as envia.
- Emissão de certificado pela empresa e liberação programada de módulos existem só na API.
- Assinatura: o acesso acompanha a assinatura quando ela é editada; o pagamento automático da mensalidade ainda não sincroniza.
- Encontros não entram na programação da feira (
Event) — ficam na agenda da home. Integrar exigiria tornar a feira opcional no evento. - Certificado no Android compartilha copiando o link, sem o menu de compartilhamento nativo.
- Verificação pública mostra o nome do titular; a opção de ocultar está pendente.