Book

 · 9天 ago

purchase kit


Started POST "/purchasekit/purchases?r=xfgv" for 172.20.10.2 at 2026-01-26 10:04:08 -0500

Cannot render console from 172.20.10.2! Allowed networks: 192.168.2.0/192.168.2.255, 127.0.0.0/127.255.255.255, ::1

Processing by PurchaseKit::PurchasesController#create as TURBO_STREAM

  Parameters: {"authenticity_token"=>"[FILTERED]", "customer_id"=>"1", "success_path"=>"/subscription?r=xfgv", "environment"=>"sandbox", "product_id"=>"ai.pickful.vip.annual", "commit"=>"Subscribe Now", "r"=>"xfgv"}

  Rendered /Users/guotong/.rbenv/versions/3.3.2/lib/ruby/gems/3.3.0/gems/purchasekit-0.4.3/app/views/purchase_kit/purchases/_intent.html.erb (Duration: 0.9ms | GC: 0.0ms)

Completed 200 OK in 152ms (Views: 0.2ms | ActiveRecord: 0.0ms (0 queries, 0 cached) | GC: 0.0ms)












Started POST "/purchasekit/purchase/completions/4790b157-1b44-445f-8d74-be89a9d08d8f" for 172.20.10.2 at 2026-01-26 10:05:16 -0500

Cannot render console from 172.20.10.2! Allowed networks: 192.168.2.0/192.168.2.255, 127.0.0.0/127.255.255.255, ::1

Processing by PurchaseKit::Purchase::CompletionsController#create as */*

  Parameters: {"id"=>"4790b157-1b44-445f-8d74-be89a9d08d8f"}

  TRANSACTION (0.2ms)  BEGIN /*action='create',application='CryptoSocial',controller='completions'*/

  Pay::Webhook Create (10.2ms)  INSERT INTO "pay_webhooks" ("processor", "event_type", "event", "created_at", "updated_at") VALUES ('purchasekit', 'subscription.created', '{"type":"subscription.created","customer_id":"1","subscription_id":"sub_20f367bf2c623bbc00056d94","store":"apple","store_product_id":"ai.pickful.vip.annual","subscription_name":"Demo Subscription","status":"active","current_period_start":"2026-01-26T15:05:16Z","current_period_end":"2027-01-26T15:05:16Z","ends_at":null,"success_path":"/subscription?r=xfgv"}', '2026-01-26 15:05:16.448953', '2026-01-26 15:05:16.448953') RETURNING "id" /*action='create',application='CryptoSocial',controller='completions'*/

  TRANSACTION (0.8ms)  COMMIT /*action='create',application='CryptoSocial',controller='completions'*/

[ActiveJob] Enqueued PurchaseKit::Pay::Webhook::ProcessWebhookJob (Job ID: 51c467c8-733d-474d-b590-ddeab0ef5220) to Async(default) with arguments: 1

Redirected to http://172.20.10.2:3000/subscription?r=xfgv

Completed 302 Found in 200ms (ActiveRecord: 31.7ms (1 query, 0 cached) | GC: 0.0ms)



Started GET "/subscription?r=xfgv" for 172.20.10.2 at 2026-01-26 10:05:16 -0500

Cannot render console from 172.20.10.2! Allowed networks: 192.168.2.0/192.168.2.255, 127.0.0.0/127.255.255.255, ::1

[ActiveJob] [PurchaseKit::Pay::Webhook::ProcessWebhookJob] [51c467c8-733d-474d-b590-ddeab0ef5220] Performing PurchaseKit::Pay::Webhook::ProcessWebhookJob (Job ID: 51c467c8-733d-474d-b590-ddeab0ef5220) from Async(default) enqueued at 2026-01-26T15:05:16.476083000Z with arguments: 1

Processing by SubscriptionsController#show as */*

  Parameters: {"r"=>"xfgv"}

[ActiveJob] [PurchaseKit::Pay::Webhook::ProcessWebhookJob] [51c467c8-733d-474d-b590-ddeab0ef5220]   Pay::Webhook Load (2.2ms)  SELECT "pay_webhooks".* FROM "pay_webhooks" WHERE "pay_webhooks"."id" = 1 LIMIT 1 /*application='CryptoSocial',job='PurchaseKit%3A%3APay%3A%3AWebhook%3A%3AProcessWebhookJob'*/

[ActiveJob] [PurchaseKit::Pay::Webhook::ProcessWebhookJob] [51c467c8-733d-474d-b590-ddeab0ef5220]   Pay::Customer Load (0.5ms)  SELECT "pay_customers".* FROM "pay_customers" WHERE "pay_customers"."id" = 1 LIMIT 1 /*application='CryptoSocial',job='PurchaseKit%3A%3APay%3A%3AWebhook%3A%3AProcessWebhookJob'*/

[ActiveJob] [PurchaseKit::Pay::Webhook::ProcessWebhookJob] [51c467c8-733d-474d-b590-ddeab0ef5220]   Pay::Purchasekit::Subscription Load (1.2ms)  SELECT "pay_subscriptions".* FROM "pay_subscriptions" WHERE "pay_subscriptions"."customer_id" = 1 AND "pay_subscriptions"."processor_id" = 'sub_20f367bf2c623bbc00056d94' LIMIT 1 /*application='CryptoSocial',job='PurchaseKit%3A%3APay%3A%3AWebhook%3A%3AProcessWebhookJob'*/

[ActiveJob] [PurchaseKit::Pay::Webhook::ProcessWebhookJob] [51c467c8-733d-474d-b590-ddeab0ef5220] Error performing PurchaseKit::Pay::Webhook::ProcessWebhookJob (Job ID: 51c467c8-733d-474d-b590-ddeab0ef5220) from Async(default) in 244.43ms: NameError (uninitialized constant Pay::Purchasekit::Billable):

/Users/guotong/.rbenv/versions/3.3.2/lib/ruby/gems/3.3.0/gems/activesupport-8.0.2/lib/active_support/inflector/methods.rb:290:in `const_get'

/Users/guotong/.rbenv/versions/3.3.2/lib/ruby/gems/3.3.0/gems/activesupport-8.0.2/lib/active_support/inflector/methods.rb:290:in `constantize'

/Users/guotong/.rbenv/versions/3.3.2/lib/ruby/gems/3.3.0/gems/activesupport-8.0.2/lib/active_support/core_ext/string/inflections.rb:74:in `constantize'

/Users/guotong/.rbenv/versions/3.3.2/lib/ruby/gems/3.3.0/gems/pay-7.3.0/app/models/pay/customer.rb:37:in `pay_processor_for'

/Users/guotong/.rbenv/versions/3.3.2/lib/ruby/gems/3.3.0/gems/pay-7.3.0/app/models/pay/customer.rb:42:in `pay_processor'

/Users/guotong/.rbenv/versions/3.3.2/lib/ruby/gems/3.3.0/gems/activesupport-8.0.2/lib/active_support/delegation.rb:182:in `respond_to_missing?'

/Users/guotong/.rbenv/versions/3.3.2/lib/ruby/gems/3.3.0/gems/activemodel-8.0.2/lib/active_model/attribute_methods.rb:529:in `respond_to?'

/Users/guotong/.rbenv/versions/3.3.2/lib/ruby/gems/3.3.0/gems/activemodel-8.0.2/lib/active_model/attribute_methods.rb:529:in `respond_to?'

/Users/guotong/.rbenv/versions/3.3.2/lib/ruby/gems/3.3.0/gems/activerecord-8.0.2/lib/active_record/attribute_methods.rb:292:in `respond_to?'

/Users/guotong/.rbenv/versions/3.3.2/lib/ruby/gems/3.3.0/gems/activesupport-8.0.2/lib/active_support/core_ext/array/wrap.rb:42:in `wrap'

/Users/guotong/.rbenv/versions/3.3.2/lib/ruby/gems/3.3.0/gems/activerecord-8.0.2/lib/active_record/validations/presence.rb:8:in `validate_each'

/Users/guotong/.rbenv/versions/3.3.2/lib/ruby/gems/3.3.0/gems/activemodel-8.0.2/lib/active_model/validator.rb:155:in `block in validate'

/Users/guotong/.rbenv/versions/3.3.2/lib/ruby/gems/3.3.0/gems/activemodel-8.0.2/lib/active_model/validator.rb:151:in `each'

/Users/guotong/.rbenv/versions/3.3.2/lib/ruby/gems/3.3.0/gems/activemodel-8.0.2/lib/active_model/validator.rb:151:in `validate'

/Users/guotong/.rbenv/versions/3.3.2/lib/ruby/gems/3.3.0/gems/activesupport-8.0.2/lib/active_support/callbacks.rb:384:in `block in make_lambda'

/Users/guotong/.rbenv/versions/3.3.2/lib/ruby/gems/3.3.0/gems/activesupport-8.0.2/lib/active_support/callbacks.rb:178:in `block in call'

/Users/guotong/.rbenv/versions/3.3.2/lib/ruby/gems/3.3.0/gems/activesupport-8.0.2/lib/active_support/callbacks.rb:668:in `block (2 levels) in default_terminator'

/Users/guotong/.rbenv/versions/3.3.2/lib/ruby/gems/3.3.0/gems/activesupport-8.0.2/lib/active_support/callbacks.rb:667:in `catch'

/Users/guotong/.rbenv/versions/3.3.2/lib/ruby/gems/3.3.0/gems/activesupport-8.0.2/lib/active_support/callbacks.rb:667:in `block in default_terminator'

/Users/guotong/.rbenv/versions/3.3.2/lib/ruby/gems/3.3.0/gems/activesupport-8.0.2/lib/active_support/callbacks.rb:179:in `call'

/Users/guotong/.rbenv/versions/3.3.2/lib/ruby/gems/3.3.0/gems/activesupport-8.0.2/lib/active_support/callbacks.rb:559:in `block in invoke_before'

/Users/guotong/.rbenv/versions/3.3.2/lib/ruby/gems/3.3.0/gems/activesupport-8.0.2/lib/active_support/callbacks.rb:559:in `each'

/Users/guotong/.rbenv/versions/3.3.2/lib/ruby/gems/3.3.0/gems/activesupport-8.0.2/lib/active_support/callbacks.rb:559:in `invoke_before'

/Users/guotong/.rbenv/versions/3.3.2/lib/ruby/gems/3.3.0/gems/activesupport-8.0.2/lib/active_support/callbacks.rb:108:in `run_callbacks'

/Users/guotong/.rbenv/versions/3.3.2/lib/ruby/gems/3.3.0/gems/activesupport-8.0.2/lib/active_support/callbacks.rb:913:in `_run_validate_callbacks'

/Users/guotong/.rbenv/versions/3.3.2/lib/ruby/gems/3.3.0/gems/activemodel-8.0.2/lib/active_model/validations.rb:474:in `run_validations!'

/Users/guotong/.rbenv/versions/3.3.2/lib/ruby/gems/3.3.0/gems/activemodel-8.0.2/lib/active_model/validations/callbacks.rb:115:in `block in run_validations!'

/Users/guotong/.rbenv/versions/3.3.2/lib/ruby/gems/3.3.0/gems/activesupport-8.0.2/lib/active_support/callbacks.rb:109:in `run_callbacks'

/Users/guotong/.rbenv/versions/3.3.2/lib/ruby/gems/3.3.0/gems/activesupport-8.0.2/lib/active_support/callbacks.rb:913:in `_run_validation_callbacks'

/Users/guotong/.rbenv/versions/3.3.2/lib/ruby/gems/3.3.0/gems/activemodel-8.0.2/lib/active_model/validations/callbacks.rb:115:in `run_validations!'

/Users/guotong/.rbenv/versions/3.3.2/lib/ruby/gems/3.3.0/gems/activemodel-8.0.2/lib/active_model/validations.rb:365:in `valid?'

/Users/guotong/.rbenv/versions/3.3.2/lib/ruby/gems/3.3.0/gems/activerecord-8.0.2/lib/active_record/validations.rb:71:in `valid?'

/Users/guotong/.rbenv/versions/3.3.2/lib/ruby/gems/3.3.0/gems/activerecord-8.0.2/lib/active_record/validations.rb:91:in `perform_validations'

/Users/guotong/.rbenv/versions/3.3.2/lib/ruby/gems/3.3.0/gems/activerecord-8.0.2/lib/active_record/validations.rb:54:in `save!'

/Users/guotong/.rbenv/versions/3.3.2/lib/ruby/gems/3.3.0/gems/activerecord-8.0.2/lib/active_record/transactions.rb:365:in `block in save!'

/Users/guotong/.rbenv/versions/3.3.2/lib/ruby/gems/3.3.0/gems/activerecord-8.0.2/lib/active_record/transactions.rb:417:in `block (2 levels) in with_transaction_returning_status'

/Users/guotong/.rbenv/versions/3.3.2/lib/ruby/gems/3.3.0/gems/activerecord-8.0.2/lib/active_record/connection_adapters/abstract/database_statements.rb:357:in `transaction'

/Users/guotong/.rbenv/versions/3.3.2/lib/ruby/gems/3.3.0/gems/activerecord-8.0.2/lib/active_record/transactions.rb:413:in `block in with_transaction_returning_status'

/Users/guotong/.rbenv/versions/3.3.2/lib/ruby/gems/3.3.0/gems/activerecord-8.0.2/lib/active_record/connection_adapters/abstract/connection_pool.rb:412:in `with_connection'

/Users/guotong/.rbenv/versions/3.3.2/lib/ruby/gems/3.3.0/gems/activerecord-8.0.2/lib/active_record/connection_handling.rb:310:in `with_connection'

/Users/guotong/.rbenv/versions/3.3.2/lib/ruby/gems/3.3.0/gems/activerecord-8.0.2/lib/active_record/transactions.rb:409:in `with_transaction_returning_status'

/Users/guotong/.rbenv/versions/3.3.2/lib/ruby/gems/3.3.0/gems/activerecord-8.0.2/lib/active_record/transactions.rb:365:in `save!'

/Users/guotong/.rbenv/versions/3.3.2/lib/ruby/gems/3.3.0/gems/activerecord-8.0.2/lib/active_record/suppressor.rb:56:in `save!'

/Users/guotong/.rbenv/versions/3.3.2/lib/ruby/gems/3.3.0/gems/activerecord-8.0.2/lib/active_record/persistence.rb:579:in `block in update!'

/Users/guotong/.rbenv/versions/3.3.2/lib/ruby/gems/3.3.0/gems/activerecord-8.0.2/lib/active_record/transactions.rb:417:in `block (2 levels) in with_transaction_returning_status'

/Users/guotong/.rbenv/versions/3.3.2/lib/ruby/gems/3.3.0/gems/activerecord-8.0.2/lib/active_record/connection_adapters/abstract/transaction.rb:626:in `block in within_new_transaction'

/Users/guotong/.rbenv/versions/3.3.2/lib/ruby/gems/3.3.0/gems/activesupport-8.0.2/lib/active_support/concurrency/null_lock.rb:9:in `synchronize'

/Users/guotong/.rbenv/versions/3.3.2/lib/ruby/gems/3.3.0/gems/activerecord-8.0.2/lib/active_record/connection_adapters/abstract/transaction.rb:623:in `within_new_transaction'

/Users/guotong/.rbenv/versions/3.3.2/lib/ruby/gems/3.3.0/gems/activerecord-8.0.2/lib/active_record/connection_adapters/abstract/database_statements.rb:367:in `within_new_transaction'

/Users/guotong/.rbenv/versions/3.3.2/lib/ruby/gems/3.3.0/gems/activerecord-8.0.2/lib/active_record/connection_adapters/abstract/database_statements.rb:359:in `transaction'

/Users/guotong/.rbenv/versions/3.3.2/lib/ruby/gems/3.3.0/gems/activerecord-8.0.2/lib/active_record/transactions.rb:413:in `block in with_transaction_returning_status'

/Users/guotong/.rbenv/versions/3.3.2/lib/ruby/gems/3.3.0/gems/activerecord-8.0.2/lib/active_record/connection_adapters/abstract/connection_pool.rb:418:in `with_connection'

/Users/guotong/.rbenv/versions/3.3.2/lib/ruby/gems/3.3.0/gems/activerecord-8.0.2/lib/active_record/connection_handling.rb:310:in `with_connection'

/Users/guotong/.rbenv/versions/3.3.2/lib/ruby/gems/3.3.0/gems/activerecord-8.0.2/lib/active_record/transactions.rb:409:in `with_transaction_returning_status'

/Users/guotong/.rbenv/versions/3.3.2/lib/ruby/gems/3.3.0/gems/activerecord-8.0.2/lib/active_record/persistence.rb:577:in `update!'

/Users/guotong/.rbenv/versions/3.3.2/lib/ruby/gems/3.3.0/gems/purchasekit-0.4.3/lib/purchasekit/pay/webhooks/subscription_created.rb:17:in `call'

/Users/guotong/.rbenv/versions/3.3.2/lib/ruby/gems/3.3.0/gems/pay-7.3.0/lib/pay/webhooks/delegator.rb:50:in `call'

/Users/guotong/.rbenv/versions/3.3.2/lib/ruby/gems/3.3.0/gems/activesupport-8.0.2/lib/active_support/notifications/fanout.rb:133:in `block in finish'

/Users/guotong/.rbenv/versions/3.3.2/lib/ruby/gems/3.3.0/gems/activesupport-8.0.2/lib/active_support/notifications/fanout.rb:24:in `block in iterate_guarding_exceptions'

/Users/guotong/.rbenv/versions/3.3.2/lib/ruby/gems/3.3.0/gems/activesupport-8.0.2/lib/active_support/notifications/fanout.rb:23:in `each'

/Users/guotong/.rbenv/versions/3.3.2/lib/ruby/gems/3.3.0/gems/activesupport-8.0.2/lib/active_support/notifications/fanout.rb:23:in `iterate_guarding_exceptions'

/Users/guotong/.rbenv/versions/3.3.2/lib/ruby/gems/3.3.0/gems/activesupport-8.0.2/lib/active_support/notifications/fanout.rb:121:in `each'

/Users/guotong/.rbenv/versions/3.3.2/lib/ruby/gems/3.3.0/gems/activesupport-8.0.2/lib/active_support/notifications/fanout.rb:132:in `finish'

/Users/guotong/.rbenv/versions/3.3.2/lib/ruby/gems/3.3.0/gems/activesupport-8.0.2/lib/active_support/notifications/fanout.rb:258:in `block in finish_with_values'

/Users/guotong/.rbenv/versions/3.3.2/lib/ruby/gems/3.3.0/gems/activesupport-8.0.2/lib/active_support/notifications/fanout.rb:24:in `block in iterate_guarding_exceptions'

/Users/guotong/.rbenv/versions/3.3.2/lib/ruby/gems/3.3.0/gems/activesupport-8.0.2/lib/active_support/notifications/fanout.rb:23:in `each'

/Users/guotong/.rbenv/versions/3.3.2/lib/ruby/gems/3.3.0/gems/activesupport-8.0.2/lib/active_support/notifications/fanout.rb:23:in `iterate_guarding_exceptions'

/Users/guotong/.rbenv/versions/3.3.2/lib/ruby/gems/3.3.0/gems/activesupport-8.0.2/lib/active_support/notifications/fanout.rb:257:in `finish_with_values'

/Users/guotong/.rbenv/versions/3.3.2/lib/ruby/gems/3.3.0/gems/activesupport-8.0.2/lib/active_support/notifications/fanout.rb:250:in `finish'

/Users/guotong/.rbenv/versions/3.3.2/lib/ruby/gems/3.3.0/gems/activesupport-8.0.2/lib/active_support/notifications/instrumenter.rb:64:in `instrument'

/Users/guotong/.rbenv/versions/3.3.2/lib/ruby/gems/3.3.0/gems/activesupport-8.0.2/lib/active_support/notifications.rb:210:in `instrument'

/Users/guotong/.rbenv/versions/3.3.2/lib/ruby/gems/3.3.0/gems/pay-7.3.0/lib/pay/webhooks/delegator.rb:35:in `instrument'

/Users/guotong/.rbenv/versions/3.3.2/lib/ruby/gems/3.3.0/gems/pay-7.3.0/lib/pay/webhooks.rb:7:in `instrument'

/Users/guotong/.rbenv/versions/3.3.2/lib/ruby/gems/3.3.0/gems/pay-7.3.0/app/models/pay/webhook.rb:8:in `process!'

/Users/guotong/.rbenv/versions/3.3.2/lib/ruby/gems/3.3.0/gems/purchasekit-0.4.3/lib/purchasekit/pay/webhook.rb:31:in `perform'

/Users/guotong/.rbenv/versions/3.3.2/lib/ruby/gems/3.3.0/gems/activejob-8.0.2/lib/active_job/execution.rb:68:in `block in _perform_job'

/Users/guotong/.rbenv/versions/3.3.2/lib/ruby/gems/3.3.0/gems/activesupport-8.0.2/lib/active_support/callbacks.rb:120:in `block in run_callbacks'

/Users/guotong/.rbenv/versions/3.3.2/lib/ruby/gems/3.3.0/gems/i18n-1.14.7/lib/i18n.rb:353:in `with_locale'

/Users/guotong/.rbenv/versions/3.3.2/lib/ruby/gems/3.3.0/gems/activejob-8.0.2/lib/active_job/translation.rb:9:in `block (2 levels) in <module:Translation>'

/Users/guotong/.rbenv/versions/3.3.2/lib/ruby/gems/3.3.0/gems/activesupport-8.0.2/lib/active_support/callbacks.rb:129:in `instance_exec'

/Users/guotong/.rbenv/versions/3.3.2/lib/ruby/gems/3.3.0/gems/activesupport-8.0.2/lib/active_support/callbacks.rb:129:in `block in run_callbacks'

/Users/guotong/.rbenv/versions/3.3.2/lib/ruby/gems/3.3.0/gems/activesupport-8.0.2/lib/active_support/core_ext/time/zones.rb:65:in `use_zone'

/Users/guotong/.rbenv/versions/3.3.2/lib/ruby/gems/3.3.0/gems/activejob-8.0.2/lib/active_job/timezones.rb:9:in `block (2 levels) in <module:Timezones>'

/Users/guotong/.rbenv/versions/3.3.2/lib/ruby/gems/3.3.0/gems/activesupport-8.0.2/lib/active_support/callbacks.rb:129:in `instance_exec'

/Users/guotong/.rbenv/versions/3.3.2/lib/ruby/gems/3.3.0/gems/activesupport-8.0.2/lib/active_support/callbacks.rb:129:in `block in run_callbacks'

/Users/guotong/.rbenv/versions/3.3.2/lib/ruby/gems/3.3.0/gems/activesupport-8.0.2/lib/active_support/callbacks.rb:140:in `run_callbacks'

/Users/guotong/.rbenv/versions/3.3.2/lib/ruby/gems/3.3.0/gems/activejob-8.0.2/lib/active_job/execution.rb:67:in `_perform_job'

/Users/guotong/.rbenv/versions/3.3.2/lib/ruby/gems/3.3.0/gems/activejob-8.0.2/lib/active_job/instrumentation.rb:32:in `_perform_job'

/Users/guotong/.rbenv/versions/3.3.2/lib/ruby/gems/3.3.0/gems/activejob-8.0.2/lib/active_job/execution.rb:51:in `perform_now'

/Users/guotong/.rbenv/versions/3.3.2/lib/ruby/gems/3.3.0/gems/activejob-8.0.2/lib/active_job/instrumentation.rb:26:in `block in perform_now'

/Users/guotong/.rbenv/versions/3.3.2/lib/ruby/gems/3.3.0/gems/activerecord-8.0.2/lib/active_record/railties/job_runtime.rb:13:in `block in instrument'

/Users/guotong/.rbenv/versions/3.3.2/lib/ruby/gems/3.3.0/gems/activejob-8.0.2/lib/active_job/instrumentation.rb:40:in `block in instrument'

/Users/guotong/.rbenv/versions/3.3.2/lib/ruby/gems/3.3.0/gems/activesupport-8.0.2/lib/active_support/notifications.rb:210:in `block in instrument'

/Users/guotong/.rbenv/versions/3.3.2/lib/ruby/gems/3.3.0/gems/activesupport-8.0.2/lib/active_support/notifications/instrumenter.rb:58:in `instrument'

/Users/guotong/.rbenv/versions/3.3.2/lib/ruby/gems/3.3.0/gems/activesupport-8.0.2/lib/active_support/notifications.rb:210:in `instrument'

/Users/guotong/.rbenv/versions/3.3.2/lib/ruby/gems/3.3.0/gems/activejob-8.0.2/lib/active_job/instrumentation.rb:39:in `instrument'

/Users/guotong/.rbenv/versions/3.3.2/lib/ruby/gems/3.3.0/gems/activerecord-8.0.2/lib/active_record/railties/job_runtime.rb:11:in `instrument'

/Users/guotong/.rbenv/versions/3.3.2/lib/ruby/gems/3.3.0/gems/activejob-8.0.2/lib/active_job/instrumentation.rb:26:in `perform_now'

/Users/guotong/.rbenv/versions/3.3.2/lib/ruby/gems/3.3.0/gems/activejob-8.0.2/lib/active_job/logging.rb:32:in `block in perform_now'

/Users/guotong/.rbenv/versions/3.3.2/lib/ruby/gems/3.3.0/gems/activesupport-8.0.2/lib/active_support/tagged_logging.rb:143:in `block in tagged'

/Users/guotong/.rbenv/versions/3.3.2/lib/ruby/gems/3.3.0/gems/activesupport-8.0.2/lib/active_support/tagged_logging.rb:38:in `tagged'

/Users/guotong/.rbenv/versions/3.3.2/lib/ruby/gems/3.3.0/gems/activesupport-8.0.2/lib/active_support/tagged_logging.rb:143:in `tagged'

/Users/guotong/.rbenv/versions/3.3.2/lib/ruby/gems/3.3.0/gems/activesupport-8.0.2/lib/active_support/broadcast_logger.rb:241:in `method_missing'

/Users/guotong/.rbenv/versions/3.3.2/lib/ruby/gems/3.3.0/gems/activejob-8.0.2/lib/active_job/logging.rb:39:in `tag_logger'

/Users/guotong/.rbenv/versions/3.3.2/lib/ruby/gems/3.3.0/gems/activejob-8.0.2/lib/active_job/logging.rb:32:in `perform_now'

/Users/guotong/.rbenv/versions/3.3.2/lib/ruby/gems/3.3.0/gems/activejob-8.0.2/lib/active_job/execution.rb:29:in `block in execute'

/Users/guotong/.rbenv/versions/3.3.2/lib/ruby/gems/3.3.0/gems/activesupport-8.0.2/lib/active_support/callbacks.rb:120:in `block in run_callbacks'

/Users/guotong/.rbenv/versions/3.3.2/lib/ruby/gems/3.3.0/gems/activejob-8.0.2/lib/active_job/railtie.rb:95:in `block (4 levels) in <class:Railtie>'

/Users/guotong/.rbenv/versions/3.3.2/lib/ruby/gems/3.3.0/gems/activesupport-8.0.2/lib/active_support/reloader.rb:77:in `block in wrap'

/Users/guotong/.rbenv/versions/3.3.2/lib/ruby/gems/3.3.0/gems/activesupport-8.0.2/lib/active_support/execution_wrapper.rb:91:in `wrap'

/Users/guotong/.rbenv/versions/3.3.2/lib/ruby/gems/3.3.0/gems/activesupport-8.0.2/lib/active_support/reloader.rb:74:in `wrap'

/Users/guotong/.rbenv/versions/3.3.2/lib/ruby/gems/3.3.0/gems/activejob-8.0.2/lib/active_job/railtie.rb:94:in `block (3 levels) in <class:Railtie>'

/Users/guotong/.rbenv/versions/3.3.2/lib/ruby/gems/3.3.0/gems/activesupport-8.0.2/lib/active_support/callbacks.rb:129:in `instance_exec'

/Users/guotong/.rbenv/versions/3.3.2/lib/ruby/gems/3.3.0/gems/activesupport-8.0.2/lib/active_support/callbacks.rb:129:in `block in run_callbacks'

/Users/guotong/.rbenv/versions/3.3.2/lib/ruby/gems/3.3.0/gems/activesupport-8.0.2/lib/active_support/callbacks.rb:140:in `run_callbacks'

/Users/guotong/.rbenv/versions/3.3.2/lib/ruby/gems/3.3.0/gems/activejob-8.0.2/lib/active_job/execution.rb:27:in `execute'

/Users/guotong/.rbenv/versions/3.3.2/lib/ruby/gems/3.3.0/gems/activejob-8.0.2/lib/active_job/queue_adapters/async_adapter.rb:70:in `perform'

/Users/guotong/.rbenv/versions/3.3.2/lib/ruby/gems/3.3.0/gems/concurrent-ruby-1.3.5/lib/concurrent-ruby/concurrent/executor/ruby_thread_pool_executor.rb:359:in `run_task'

/Users/guotong/.rbenv/versions/3.3.2/lib/ruby/gems/3.3.0/gems/concurrent-ruby-1.3.5/lib/concurrent-ruby/concurrent/executor/ruby_thread_pool_executor.rb:350:in `block (3 levels) in create_worker'

<internal:kernel>:187:in `loop'

/Users/guotong/.rbenv/versions/3.3.2/lib/ruby/gems/3.3.0/gems/concurrent-ruby-1.3.5/lib/concurrent-ruby/concurrent/executor/ruby_thread_pool_executor.rb:341:in `block (2 levels) in create_worker'

/Users/guotong/.rbenv/versions/3.3.2/lib/ruby/gems/3.3.0/gems/concurrent-ruby-1.3.5/lib/concurrent-ruby/concurrent/executor/ruby_thread_pool_executor.rb:340:in `catch'

/Users/guotong/.rbenv/versions/3.3.2/lib/ruby/gems/3.3.0/gems/concurrent-ruby-1.3.5/lib/concurrent-ruby/concurrent/executor/ruby_thread_pool_executor.rb:340:in `block in create_worker'

  User Load (0.5ms)  SELECT "users".* FROM "users" WHERE "users"."id" = 1 ORDER BY "users"."id" ASC LIMIT 1 /*action='show',application='CryptoSocial',controller='subscriptions'*/

  ↳ app/controllers/application_controller.rb:53:in `initialize_trackable_ip'

  Pay::Customer Load (0.3ms)  SELECT "pay_customers".* FROM "pay_customers" WHERE "pay_customers"."owner_id" = 1 AND "pay_customers"."owner_type" = 'User' AND "pay_customers"."default" = TRUE AND "pay_customers"."deleted_at" IS NULL LIMIT 1 /*action='show',application='CryptoSocial',controller='subscriptions'*/

  ↳ app/models/user.rb:128:in `subscribed?'

  Pay::Subscription Exists? (0.5ms)  SELECT 1 AS one FROM "pay_subscriptions" WHERE "pay_subscriptions"."customer_id" = 1 AND ("pay_subscriptions"."status" = 'active' AND (pause_starts_at IS NULL OR pause_starts_at > '2026-01-26 15:05:16.926599') AND (pay_subscriptions.ends_at IS NULL OR pay_subscriptions.ends_at > '2026-01-26 15:05:16.926649') OR "pay_subscriptions"."status" IN ('trialing', 'active') AND (trial_ends_at > '2026-01-26 15:05:16.926713')) AND "pay_subscriptions"."name" = 'default' LIMIT 1 /*action='show',application='CryptoSocial',controller='subscriptions'*/

  ↳ app/models/user.rb:128:in `subscribed?'

Redirected to http://172.20.10.2:3000/subscription/paywall?r=xfgv

Completed 302 Found in 384ms (ActiveRecord: 1.2ms (3 queries, 0 cached) | GC: 3.3ms)



Started GET "/subscription/paywall?r=xfgv" for 172.20.10.2 at 2026-01-26 10:05:16 -0500

Cannot render console from 172.20.10.2! Allowed networks: 192.168.2.0/192.168.2.255, 127.0.0.0/127.255.255.255, ::1

Processing by SubscriptionsController#paywall as */*

  Parameters: {"r"=>"xfgv"}

  User Load (0.6ms)  SELECT "users".* FROM "users" WHERE "users"."id" = 1 ORDER BY "users"."id" ASC LIMIT 1 /*action='paywall',application='CryptoSocial',controller='subscriptions'*/

  ↳ app/controllers/application_controller.rb:53:in `initialize_trackable_ip'

[PurchaseKit] Finding products for user 1

[PurchaseKit] Demo mode: true

[PurchaseKit] Available products: ["ai.pickful.vip.annual", "ai.pickful.vip.monthly"]

[PurchaseKit] Products found: annual=#<PurchaseKit::Product:0x000000012c727ef0 @id="ai.pickful.vip.annual", @apple_product_id="ai.pickful.vip.annual", @google_product_id="ai.pickful.vip.annual">, monthly=#<PurchaseKit::Product:0x000000012c727ec8 @id="ai.pickful.vip.monthly", @apple_product_id="ai.pickful.vip.monthly", @google_product_id="ai.pickful.vip.monthly">

  TRANSACTION (0.1ms)  BEGIN /*action='paywall',application='CryptoSocial',controller='subscriptions'*/

  ↳ app/models/user.rb:133:in `purchasekit_processor'

  Pay::Customer Update All (0.9ms)  UPDATE "pay_customers" SET "default" = FALSE WHERE "pay_customers"."owner_id" = 1 AND "pay_customers"."owner_type" = 'User' /*action='paywall',application='CryptoSocial',controller='subscriptions'*/

  ↳ app/models/user.rb:133:in `purchasekit_processor'

  Pay::Customer Load (0.3ms)  SELECT "pay_customers".* FROM "pay_customers" WHERE "pay_customers"."owner_id" = 1 AND "pay_customers"."owner_type" = 'User' AND "pay_customers"."deleted_at" IS NULL AND "pay_customers"."processor" = 'purchasekit' ORDER BY "pay_customers"."id" ASC LIMIT 1 /*action='paywall',application='CryptoSocial',controller='subscriptions'*/

  ↳ app/models/user.rb:133:in `purchasekit_processor'

  Pay::Customer Update (0.2ms)  UPDATE "pay_customers" SET "default" = TRUE, "updated_at" = '2026-01-26 15:05:17.069138' WHERE "pay_customers"."id" = 1 /*action='paywall',application='CryptoSocial',controller='subscriptions'*/

  ↳ app/models/user.rb:133:in `purchasekit_processor'

  TRANSACTION (0.3ms)  COMMIT /*action='paywall',application='CryptoSocial',controller='subscriptions'*/

  ↳ app/models/user.rb:133:in `purchasekit_processor'

  Pay::Customer Load (0.4ms)  SELECT "pay_customers".* FROM "pay_customers" WHERE "pay_customers"."owner_id" = 1 AND "pay_customers"."owner_type" = 'User' AND "pay_customers"."default" = TRUE AND "pay_customers"."deleted_at" IS NULL LIMIT 1 /*action='paywall',application='CryptoSocial',controller='subscriptions'*/

  ↳ app/models/user.rb:133:in `purchasekit_processor'

  Rendering layout layouts/application.html.erb

  Rendering subscriptions/paywall.html.erb within layouts/application

  Rendered subscriptions/paywall.html.erb within layouts/application (Duration: 3.9ms | GC: 0.0ms)

  Rendered shared/_menu.html.erb (Duration: 4.7ms | GC: 0.0ms)

  Rendered shared/_nav.html.erb (Duration: 10.1ms | GC: 0.0ms)

  Rendered layouts/_web_header.html.erb (Duration: 11.4ms | GC: 0.0ms)

  Rendered shared/_notice.html.erb (Duration: 0.1ms | GC: 0.0ms)

  Rendered shared/_footer.html.erb (Duration: 1.9ms | GC: 0.0ms)

  Rendered shared/_app_menu.html.erb (Duration: 0.0ms | GC: 0.0ms)

  Rendered shared/_analytics.html.erb (Duration: 0.0ms | GC: 0.0ms)

  Rendered layout layouts/application.html.erb (Duration: 20.3ms | GC: 0.1ms)

Completed 200 OK in 145ms (Views: 20.7ms | ActiveRecord: 2.7ms (5 queries, 0 cached) | GC: 0.2ms)



Started GET "/subscription?r=xfgv" for 172.20.10.2 at 2026-01-26 10:05:47 -0500

Cannot render console from 172.20.10.2! Allowed networks: 192.168.2.0/192.168.2.255, 127.0.0.0/127.255.255.255, ::1

Processing by SubscriptionsController#show as HTML

  Parameters: {"r"=>"xfgv"}

  User Load (0.5ms)  SELECT "users".* FROM "users" WHERE "users"."id" = 1 ORDER BY "users"."id" ASC LIMIT 1 /*action='show',application='CryptoSocial',controller='subscriptions'*/

  ↳ app/controllers/application_controller.rb:53:in `initialize_trackable_ip'

  Pay::Customer Load (0.4ms)  SELECT "pay_customers".* FROM "pay_customers" WHERE "pay_customers"."owner_id" = 1 AND "pay_customers"."owner_type" = 'User' AND "pay_customers"."default" = TRUE AND "pay_customers"."deleted_at" IS NULL LIMIT 1 /*action='show',application='CryptoSocial',controller='subscriptions'*/

  ↳ app/models/user.rb:128:in `subscribed?'

  Pay::Subscription Exists? (0.3ms)  SELECT 1 AS one FROM "pay_subscriptions" WHERE "pay_subscriptions"."customer_id" = 1 AND ("pay_subscriptions"."status" = 'active' AND (pause_starts_at IS NULL OR pause_starts_at > '2026-01-26 15:05:47.484820') AND (pay_subscriptions.ends_at IS NULL OR pay_subscriptions.ends_at > '2026-01-26 15:05:47.484876') OR "pay_subscriptions"."status" IN ('trialing', 'active') AND (trial_ends_at > '2026-01-26 15:05:47.484933')) AND "pay_subscriptions"."name" = 'default' LIMIT 1 /*action='show',application='CryptoSocial',controller='subscriptions'*/

  ↳ app/models/user.rb:128:in `subscribed?'

Redirected to http://172.20.10.2:3000/subscription/paywall?r=xfgv

Completed 302 Found in 287ms (ActiveRecord: 1.2ms (3 queries, 0 cached) | GC: 0.0ms)



Started GET "/subscription/paywall?r=xfgv" for 172.20.10.2 at 2026-01-26 10:05:47 -0500

Cannot render console from 172.20.10.2! Allowed networks: 192.168.2.0/192.168.2.255, 127.0.0.0/127.255.255.255, ::1

Processing by SubscriptionsController#paywall as HTML

  Parameters: {"r"=>"xfgv"}

  User Load (0.4ms)  SELECT "users".* FROM "users" WHERE "users"."id" = 1 ORDER BY "users"."id" ASC LIMIT 1 /*action='paywall',application='CryptoSocial',controller='subscriptions'*/

  ↳ app/controllers/application_controller.rb:53:in `initialize_trackable_ip'

[PurchaseKit] Finding products for user 1

[PurchaseKit] Demo mode: true

[PurchaseKit] Available products: ["ai.pickful.vip.annual", "ai.pickful.vip.monthly"]

[PurchaseKit] Products found: annual=#<PurchaseKit::Product:0x000000012e8a9b28 @id="ai.pickful.vip.annual", @apple_product_id="ai.pickful.vip.annual", @google_product_id="ai.pickful.vip.annual">, monthly=#<PurchaseKit::Product:0x000000012e8a9b00 @id="ai.pickful.vip.monthly", @apple_product_id="ai.pickful.vip.monthly", @google_product_id="ai.pickful.vip.monthly">

  TRANSACTION (0.2ms)  BEGIN /*action='paywall',application='CryptoSocial',controller='subscriptions'*/

  ↳ app/models/user.rb:133:in `purchasekit_processor'

  Pay::Customer Update All (1.4ms)  UPDATE "pay_customers" SET "default" = FALSE WHERE "pay_customers"."owner_id" = 1 AND "pay_customers"."owner_type" = 'User' /*action='paywall',application='CryptoSocial',controller='subscriptions'*/

  ↳ app/models/user.rb:133:in `purchasekit_processor'

  Pay::Customer Load (0.4ms)  SELECT "pay_customers".* FROM "pay_customers" WHERE "pay_customers"."owner_id" = 1 AND "pay_customers"."owner_type" = 'User' AND "pay_customers"."deleted_at" IS NULL AND "pay_customers"."processor" = 'purchasekit' ORDER BY "pay_customers"."id" ASC LIMIT 1 /*action='paywall',application='CryptoSocial',controller='subscriptions'*/

  ↳ app/models/user.rb:133:in `purchasekit_processor'

  Pay::Customer Update (0.3ms)  UPDATE "pay_customers" SET "default" = TRUE, "updated_at" = '2026-01-26 15:05:47.649006' WHERE "pay_customers"."id" = 1 /*action='paywall',application='CryptoSocial',controller='subscriptions'*/

  ↳ app/models/user.rb:133:in `purchasekit_processor'

  TRANSACTION (0.5ms)  COMMIT /*action='paywall',application='CryptoSocial',controller='subscriptions'*/

  ↳ app/models/user.rb:133:in `purchasekit_processor'

  Pay::Customer Load (0.3ms)  SELECT "pay_customers".* FROM "pay_customers" WHERE "pay_customers"."owner_id" = 1 AND "pay_customers"."owner_type" = 'User' AND "pay_customers"."default" = TRUE AND "pay_customers"."deleted_at" IS NULL LIMIT 1 /*action='paywall',application='CryptoSocial',controller='subscriptions'*/

  ↳ app/models/user.rb:133:in `purchasekit_processor'

  Rendering layout layouts/application.html.erb

  Rendering subscriptions/paywall.html.erb within layouts/application

  Rendered subscriptions/paywall.html.erb within layouts/application (Duration: 4.1ms | GC: 0.0ms)

  Rendered shared/_notice.html.erb (Duration: 0.0ms | GC: 0.0ms)

  Rendered shared/_app_menu.html.erb (Duration: 0.1ms | GC: 0.0ms)

  Rendered shared/_analytics.html.erb (Duration: 0.0ms | GC: 0.0ms)

  Rendered layout layouts/application.html.erb (Duration: 5.5ms | GC: 0.0ms)

Completed 200 OK in 146ms (Views: 5.8ms | ActiveRecord: 3.5ms (5 queries, 0 cached) | GC: 0.0ms)



Unsubscribing from channel: {"channel":"Turbo::StreamsChannel","signed_stream_name":"IloybGtPaTh2WTNKNWNIUnZMWE52WTJsaGJDOVFZWGs2T2tOMWMzUnZiV1Z5THpFIg==--38d050565018255e2e63b15c054a5a3b115cfaa2e3fb23ee0ac62a05928ce3ae"}

Turbo::StreamsChannel stopped streaming from Z2lkOi8vY3J5cHRvLXNvY2lhbC9QYXk6OkN1c3RvbWVyLzE

Turbo::StreamsChannel is transmitting the subscription confirmation

Turbo::StreamsChannel is streaming from Z2lkOi8vY3J5cHRvLXNvY2lhbC9QYXk6OkN1c3RvbWVyLzE

Unsubscribing from channel: {"channel":"Turbo::StreamsChannel","signed_stream_name":"IloybGtPaTh2WTNKNWNIUnZMWE52WTJsaGJDOVFZWGs2T2tOMWMzUnZiV1Z5THpFIg==--38d050565018255e2e63b15c054a5a3b115cfaa2e3fb23ee0ac62a05928ce3ae"}

Turbo::StreamsChannel stopped streaming from Z2lkOi8vY3J5cHRvLXNvY2lhbC9QYXk6OkN1c3RvbWVyLzE

Turbo::StreamsChannel is transmitting the subscription confirmation

Turbo::StreamsChannel is streaming from Z2lkOi8vY3J5cHRvLXNvY2lhbC9QYXk6OkN1c3RvbWVyLzE


Download Pickful App

Better experience on mobile

iOS QR

iOS

Android QR

Android

APK QR

APK