fix: handle users being stuck on is_creating billing flow (#12750)

Fixes https://linear.app/chatwoot/issue/CW-5880/handle-customers-being-stuck-on-biling-page
This commit is contained in:
Vishnu Narayanan
2026-04-16 13:22:31 +05:30
committed by GitHub
parent 48533e2a5d
commit 72b8a31f2d

View File

@@ -3,5 +3,22 @@ class Enterprise::CreateStripeCustomerJob < ApplicationJob
def perform(account) def perform(account)
Enterprise::Billing::CreateStripeCustomerService.new(account: account).perform Enterprise::Billing::CreateStripeCustomerService.new(account: account).perform
ensure
# Always clear the is_creating_customer flag, even if the job fails
# This prevents users from getting stuck on the billing page
clear_creating_flag(account)
end
private
def clear_creating_flag(account)
# Atomic JSONB key removal — avoids clobbering concurrent writes to custom_attributes
# rubocop:disable Rails/SkipsModelValidations
Account.where(id: account.id).update_all(
"custom_attributes = custom_attributes - 'is_creating_customer'"
)
# rubocop:enable Rails/SkipsModelValidations
rescue StandardError => e
Rails.logger.error("Failed to clear is_creating_customer flag for account=#{account.id}: #{e.full_message}")
end end
end end