Cool. Merci !
Il y avait un abonnement.
Une correction sur votre code :
subs = ::Stripe::Subscription.list(customer: customer.stripe_customer_id, status: 'all')[:data]
Il y a 100 plans (donc probablement plus que ça) - peut-être que c’est ça le problème ? (J’ai essayé avec limit: 1000 mais ça n’a rien changé ; je suppose que c’est une limite de l’API Stripe ?)
Donc peut-être que s’il y a plus de 100 plans, ça échoue ? Oh, et les utilisateurs pour lesquels ça ne plante pas, sont sur des plans qui font partie des 100 premiers.
discourse(prod)> plan = plans[:data].find { |p| p[:id] == price_id }
discourse(prod)>
=> nil
EDIT :
Oui. Si je fais ça :
# Obtenir l'ID du dernier élément
last_price_id = plans.data.last.id
# Obtenir les 100 suivants
next_plans = ::Stripe::Price.list(
expand: ['data.product'],
limit: 100,
starting_after: last_price_id
)
alors
discourse(prod)> next_plans[:data].find { |p| p[:id] == price_id }
trouve ce qu’il cherche.
EDIT ENCORE : next_plans.count == 8. J’ai suggéré de supprimer 10 plans.