Get /users/by-external/ restituisce errore URL non trovato dopo l'aggiornamento

Sono riuscito a risolverlo

Sembra che abbiano aggiornato il codice per generare effettivamente un errore se non viene trovato alcun utente, quindi ho dovuto fare un rescue invece di confrontare se nil?

begin
    resp = client.get("/users/by-external/#{user.id}")
rescue DiscourseApi::NotFoundError => error
    puts error.response.body['errors'].first
    sync_user(user)
else
    resp.response.env.body['user']
end

Inoltre, la risposta è cambiata da
resp['body']['user']
a
resp.response.env.body['user']

Il mio ultimo problema rimasto è che quando chiamo client.sync_sso ottengo ora un errore interno del server 500

I log mostrano
ActiveRecord::RecordNotUnique (PG::UniqueViolation: ERROR: duplicate key value violates unique constraint "user_emails_pkey")

Tuttavia, se uso gli stessi identici dettagli nel terminale rails ed eseguo client.sync_sso, funziona perfettamente

Solo per informazione, non ho cambiato l’endpoint affinché le parti sopra riprendano a funzionare, quindi sembra che /users/by-external/ sia ancora valido