# Erro: callback de associação ao grupo Patreon falhou para novo usuário

**URL:** https://meta.discourse.org/t/error-patreon-group-membership-callback-failed-for-new-user/128580
**Category:** Bug
**Tags:** patreon
**Created:** [14 Setembro , 2019 15:17 UTC](https://meta.discourse.org/t/error-patreon-group-membership-callback-failed-for-new-user/128580 "2019-09-14T15:17:01Z")
**Posts on this page:** 6
**Page:** 1

<div class="post-metadata">

### Author: ![AndrewD](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/andrewd/32/156310_2.png) [@AndrewD](https://meta.discourse.org/u/AndrewD)
#### Post date: [14 Setembro , 2019 15:17 UTC](https://meta.discourse.org/t/error-patreon-group-membership-callback-failed-for-new-user/128580/1 "2019-09-14T15:17:02Z")

</div>

Estou apenas configurando um servidor Discourse com integração ao Patreon. Recebi a seguinte mensagem de erro quando apoiadores (Patrons) se cadastram no Discourse:

```
Patreon group membership callback failed for new user 7 with error: undefined method `add' for nil:NilClass.
/var/www/discourse/plugins/discourse-patreon/plugin.rb:166:in `block (3 levels) in activate!'
/var/www/discourse/plugins/discourse-patreon/plugin.rb:164:in `each'
/var/www/discourse/plugins/discourse-patreon/plugin.rb:164:in `block (2 levels) in activate!'
/var/www/discourse/lib/plugin/instance.rb:215:in `public_send'
/var/www/discourse/lib/plugin/instance.rb:215:in `block (2 levels) in add_model_callback'

```

O usuário se registra usando autenticação do Patreon. O usuário é criado, o Patreon aparece em `Contas Associadas`, mas os dados do Patreon (Valor, Recompensas) não são adicionados ao perfil dele, e ele não é adicionado ao grupo. Se eu clicar em `Atualizar Dados do Patreon e Sincronizar Grupos`, os dados aparecem e ele é adicionado ao grupo com sucesso.

Eles não são novos apoiadores. São apoiadores há muito tempo e só agora estão entrando no Discourse.

Agora estou executando a versão atual - `2.4.0.beta4`. Está no meu próprio servidor, mas é uma instalação padrão.

Antes de atualizar para esta versão, desativei o plugin e excluí e recriei a Chave do Cliente. (Uma tentativa desesperada de resolver um problema que na verdade foi corrigido pela nova versão…) Estou me perguntando se “quebrei” a configuração em torno do grupo de apoiadores de alguma forma, embora pareça estranho que a Sincronização funcione, mas o registro de um novo usuário não.

Acabei de fazer um teste usando um usuário de teste:

1. Criar usuário de teste no Patreon, com promessa de contribuição para minha campanha. (O Webhook é acionado, mas acho que isso não é relevante, já que o problema ocorre com apoiadores “antigos”.)
2. Clicar em `Atualizar Dados do Patreon e Sincronizar Grupos`, aguardar a mensagem assíncrona de que os dados foram atualizados.
3. Registrar usuário de teste no Discourse.
4. Verificar os dados do Patreon para o usuário de teste. Nenhuma seção `Patreon` - Valor, Recompensas. Usuário não incluído no grupo de apoiadores.
5. Clicar em `Atualizar Dados do Patreon e Sincronizar Grupos`, aguardar a mensagem assíncrona de que os dados foram atualizados.
6. Verificar os dados do Patreon para o usuário de teste. A seção `Patreon` agora está presente, com Valor e Recompensas. O usuário está incluído no grupo de apoiadores.

Obrigado antecipadamente por qualquer ajuda!

---

<div class="post-metadata">

### Author: ![codinghorror](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/codinghorror/32/110067_2.png) [@codinghorror](https://meta.discourse.org/u/codinghorror)
#### Post date: [14 Setembro , 2019 22:36 UTC](https://meta.discourse.org/t/error-patreon-group-membership-callback-failed-for-new-user/128580/2 "2019-09-14T22:36:01Z")

</div>

Alguma opinião sobre isso @vinothkannans?

---

<div class="post-metadata">

### Author: ![AndrewD](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/andrewd/32/156310_2.png) [@AndrewD](https://meta.discourse.org/u/AndrewD)
#### Post date: [15 Setembro , 2019 00:21 UTC](https://meta.discourse.org/t/error-patreon-group-membership-callback-failed-for-new-user/128580/3 "2019-09-15T00:21:41Z")

</div>

Eu explorei um pouco o código e vi que a funcionalidade de atribuição de grupos é tratada em dois locais:

1. `add_model_callback` em `plugin.rb`, que gerencia o registro de um único novo usuário.
2. `sync_groups` em `patron.rb`, que gerencia a sincronização em lote da associação a grupos para todos os membros.

Minha experiência é que o `sync_groups` funciona, mas o `add_model_callback` não.

Notei que o `sync_groups` inclui a seguinte linha:

```
next if group.nil?

```

Precisamos da mesma linha no `add_model_callback`? (Antes da linha 166.)

Isso impediria que a exceção fosse lançada, mas não sei se tornaria tudo correto. Não conheço o código nem o modelo de dados, então é praticamente um palpite.

---

<div class="post-metadata">

### Author: ![vinothkannans](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/vinothkannans/32/86465_2.png) [@vinothkannans](https://meta.discourse.org/u/vinothkannans)
#### Post date: [16 Setembro , 2019 20:05 UTC](https://meta.discourse.org/t/error-patreon-group-membership-callback-failed-for-new-user/128580/4 "2019-09-16T20:05:03Z")

</div>

> [@AndrewD](#):
>
> Precisamos da mesma linha em `add_model_callback`? (Antes da linha 166.)

Sim, você está correto. Obrigado pelo relatório. Isso foi corrigido no commit abaixo

> <https://github.com/discourse/discourse-patreon/commit/15255a6d69492d14a2dd785c089809d391331781>

---

<div class="post-metadata">

### Author: ![AndrewD](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/andrewd/32/156310_2.png) [@AndrewD](https://meta.discourse.org/u/AndrewD)
#### Post date: [16 Setembro , 2019 20:12 UTC](https://meta.discourse.org/t/error-patreon-group-membership-callback-failed-for-new-user/128580/5 "2019-09-16T20:12:11Z")

</div>

Obrigado, @vinothkannans!

---

<div class="post-metadata">

### Author: ![codinghorror](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/codinghorror/32/110067_2.png) [@codinghorror](https://meta.discourse.org/u/codinghorror)
#### Post date: [17 Setembro , 2019 03:20 UTC](https://meta.discourse.org/t/error-patreon-group-membership-callback-failed-for-new-user/128580/6 "2019-09-17T03:20:03Z")

</div>


