Проблема с ошибкой 500 при работе с подписками

Круто. Спасибо!

Была одна подписка.

Одно исправление в вашем коде:

subs = ::Stripe::Subscription.list(customer: customer.stripe_customer_id, status: 'all')[:data]

У вас 100 тарифов (а вероятно, и больше) — возможно, в этом проблема? (Я пробовал указывать limit: 1000, но это ничего не изменило; полагаю, это ограничение API Stripe?)

Возможно, если тарифов больше 100, происходит сбой? Кстати, пользователи, у которых всё работает, находятся на тарифах из первых 100.

discourse(prod)> plan = plans[:data].find { |p| p[:id] == price_id }
discourse(prod)>
=> nil

РЕДАКТИРОВАНИЕ:

Да. Если я делаю так:

# Получаем ID последнего элемента
last_price_id = plans.data.last.id

# Получаем следующие 100
next_plans = ::Stripe::Price.list(
  expand: ['data.product'],
  limit: 100,
  starting_after: last_price_id
)

то

discourse(prod)> next_plans[:data].find { |p| p[:id] == price_id }

находит то, что нужно.

РЕДАКТИРОВАНИЕ ЕЩЁ РАЗ: next_plans.count == 8. Я предложил им удалить 10 тарифов.