# Erro ao tentar atualizar a lista de observação para um grupo via API (PUT groups/{id}.json)

**URL:** https://meta.discourse.org/t/error-when-trying-to-update-the-watchlist-for-a-group-via-api-put-groups-id-json/393572
**Category:** Bug
**Tags:** groups, rest-api
**Created:** [Janeiro 15, 2026, 6:19pm UTC](https://meta.discourse.org/t/error-when-trying-to-update-the-watchlist-for-a-group-via-api-put-groups-id-json/393572 "2026-01-15T18:19:44Z")
**Posts on this page:** 6
**Page:** 1

<div class="post-metadata">

### Author: ![apf](https://avatars.discourse-cdn.com/v4/letter/a/3da27b/32.png) [@apf](https://meta.discourse.org/u/apf)
#### Post date: [Janeiro 15, 2026, 6:19pm UTC](https://meta.discourse.org/t/error-when-trying-to-update-the-watchlist-for-a-group-via-api-put-groups-id-json/393572/1 "2026-01-15T18:19:44Z")

</div>

**Prioridade/Severidade** :

média a alta

**Plataforma:**

Script Python, bem como linha de comando cURL

**Versão do servidor Discourse:**

3.6.0.beta3-latest ([6adb4f8e84](https://github.com/discourse/discourse/commits/6adb4f8e845fd0a27880b3a1f6a74413dd22014f))

**Descrição** :

Ao tentar atualizar o `watching_category_ids` de um grupo existente, meu script Python (usando um simples “requests.put”) relata o seguinte erro:

```plaintext
_doPut> ERRO na requisição: 422 Unprocessable Entity {'user_count': 2, 'errors': ['Você forneceu parâmetros inválidos para a requisição: update_existing_users']}

```

mesmo que não haja nenhum parâmetro chamado `update_existing_users` nos meus dados JSON.

Usando cURL para verificar via:

```plaintext
curl -k -L -X PUT -H 'api-key:xyz’ \
   -H 'api-username:system' \
   -H 'Accept:application/json;charset=utf-8' \
   -H 'Content-Type:application/json' \
   --data '{"group":{"name":"eb-chair-exo","watching_category_ids":[336,337]}}' \
   https://cms-phys-talk.web.cern.ch/groups/46.json

```

Eu recebo o mesmo erro:

```plaintext
{“user_count”:2,“errors”:[“Você forneceu parâmetros inválidos para a requisição: update_existing_users”]}%

```

**Passos para reproduzir** :

```plaintext
curl -k -L -X PUT -H 'api-key:xyz’ \
   -H 'api-username:system' \
   -H 'Accept:application/json;charset=utf-8' \
   -H 'Content-Type:application/json' \
   --data '{"group":{"name":"eb-chair-exo","watching_category_ids":[336,337]}}' \
   https://cms-phys-talk.web.cern.ch/groups/46.json

```

* * *

edição: adicionei a versão do servidor discourse

---

<div class="post-metadata">

### Author: ![zogstrip](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/zogstrip/32/512781_2.png) [@zogstrip](https://meta.discourse.org/u/zogstrip)
#### Post date: [Janeiro 16, 2026, 6:26pm UTC](https://meta.discourse.org/t/error-when-trying-to-update-the-watchlist-for-a-group-via-api-put-groups-id-json/393572/3 "2026-01-16T18:26:55Z")

</div>

Sim, esse endpoint é um pouco estranho. Queríamos avisar os membros da equipe sobre o número de usuários potencialmente afetados e oferecer a eles a opção de escolher entre aplicar a alteração retroativamente ou não.

É por isso que você está vendo o “`{ 'user_count': 2, ... }`” na resposta do servidor.

Eu esclareci a mensagem de erro para que faça mais sentido e também melhorei o código do front-end para lidar melhor com este “caso de uso”, além de adicionar especificações (specs).

> <https://github.com/discourse/discourse/pull/37184>
>
> When updating a group's notification defaults (like watching\_category\_ids) via A…PI, if existing members would be affected, the server returns a 422 asking the caller to specify whether to apply changes to existing users.
> 
> The previous error message was confusing: "You supplied invalid parameters to the request: update\_existing\_users" - even though the caller hadn't supplied that parameter at all. The new message clearly explains what's happening and what to do:
> 
> "This change affects X existing group members. You must specify the 'update\_existing\_users' parameter (true or false) to indicate whether to apply the new notification defaults to existing members."
> 
> Also fixed a bug where the confirmation modal state wasn't being reset when navigating between groups, causing the modal to not appear on subsequent group edits. The modal now returns its result directly instead of storing it in component state.
> 
> Ref - https://meta.discourse.org/t/-/393572

---

<div class="post-metadata">

### Author: ![apf](https://avatars.discourse-cdn.com/v4/letter/a/3da27b/32.png) [@apf](https://meta.discourse.org/u/apf)
#### Post date: [Janeiro 16, 2026, 6:51pm UTC](https://meta.discourse.org/t/error-when-trying-to-update-the-watchlist-for-a-group-via-api-put-groups-id-json/393572/4 "2026-01-16T18:51:31Z")

</div>

Olá - e obrigado pela ação rápida! 🙂

Infelizmente, ainda estou confuso: preciso definir o valor para `watching_category_ids` para um determinado grupo, e mesmo que a mensagem de erro tenha mudado, ainda é um erro 422. Então, como posso atualizar o grupo com a nova lista de `watching_category_ids` via um script usando a API REST?

Eu já tentei adicionar `"update_existing_users”=True` nos dados JSON da chamada PUT, o erro foi o mesmo relatado. ☹

Obrigado novamente,

saudações, Andreas

---

<div class="post-metadata">

### Author: ![zogstrip](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/zogstrip/32/512781_2.png) [@zogstrip](https://meta.discourse.org/u/zogstrip)
#### Post date: [Janeiro 16, 2026, 8:21pm UTC](https://meta.discourse.org/t/error-when-trying-to-update-the-watchlist-for-a-group-via-api-put-groups-id-json/393572/5 "2026-01-16T20:21:29Z")

</div>

> [@apf](#):
>
> Eu já tentei adicionar `\"update_existing_users”=True` nos dados JSON da chamada PUT, o erro foi o mesmo relatado. ☹

Ele [espera](https://github.com/discourse/discourse/blob/d50d6f797fb0695a3b9784b8fa97d0a00caadcd4/app/controllers/groups_controller.rb#L180) a string “true” - minúscula.

---

<div class="post-metadata">

### Author: ![apf](https://avatars.discourse-cdn.com/v4/letter/a/3da27b/32.png) [@apf](https://meta.discourse.org/u/apf)
#### Post date: [Janeiro 17, 2026, 7:43am UTC](https://meta.discourse.org/t/error-when-trying-to-update-the-watchlist-for-a-group-via-api-put-groups-id-json/393572/6 "2026-01-17T07:43:01Z")

</div>

Muito obrigado, @zogstrip ! Funciona agora! 😃

(e só para referência, o `\"update_existing_users”=True` tem que estar fora/paralelo ao item “group” no json enviado (mostrado aqui em sintaxe Python, então `True` é traduzido para a string `“true”`):

```plaintext
            jsonData={
                "group": {
                    "name": f"{groupName}",
                    "watching_category_ids": newWatchList,
                },
                "update_existing_users": True,
            },

```

---

<div class="post-metadata">

### Author: ![sam](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/sam/32/102149_2.png) [@sam](https://meta.discourse.org/u/sam)
#### Post date: [Janeiro 19, 2026, 9:00pm UTC](https://meta.discourse.org/t/error-when-trying-to-update-the-watchlist-for-a-group-via-api-put-groups-id-json/393572/8 "2026-01-19T21:00:53Z")

</div>

Este tópico foi fechado automaticamente após 20 horas. Novas respostas não são mais permitidas.
