coollabsio/coolify · error · RuntimeException

No subscription and team id found

Error message

No subscription and team id found

What it means

Error "No subscription and team id found" thrown in coollabsio/coolify.

Source

Thrown at app/Jobs/StripeProcessJob.php:247

                    break;
                case 'customer.subscription.updated':
                    $teamId = data_get($data, 'metadata.team_id');
                    $userId = data_get($data, 'metadata.user_id');
                    $customerId = data_get($data, 'customer');
                    $status = data_get($data, 'status');
                    $subscriptionId = data_get($data, 'items.data.0.subscription') ?? data_get($data, 'id');
                    $planId = data_get($data, 'items.data.0.plan.id') ?? data_get($data, 'plan.id');
                    if (Str::contains($excludedPlans, $planId)) {
                        // send_internal_notification('Subscription excluded.');
                        break;
                    }
                    $subscription = Subscription::where('stripe_customer_id', $customerId)->first();
                    if (! $subscription) {
                        if ($status === 'incomplete_expired') {
                            throw new \RuntimeException('Subscription incomplete expired');
                        }
                        if (! $teamId) {
                            throw new \RuntimeException('No subscription and team id found');
                        }
                        $subscription = Subscription::firstOrCreate(
                            ['team_id' => $teamId],
                            [
                                'stripe_subscription_id' => $subscriptionId,
                                'stripe_customer_id' => $customerId,
                                'stripe_invoice_paid' => false,
                            ]
                        );
                    }
                    $cancelAtPeriodEnd = data_get($data, 'cancel_at_period_end');
                    $feedback = data_get($data, 'cancellation_details.feedback');
                    $comment = data_get($data, 'cancellation_details.comment');
                    $lookup_key = data_get($data, 'items.data.0.price.lookup_key');
                    if (str($lookup_key)->contains('dynamic')) {
                        $quantity = max(
                            UpdateSubscriptionQuantity::MIN_SERVER_LIMIT,
                            min((int) data_get($data, 'items.data.0.quantity', 2), UpdateSubscriptionQuantity::MAX_SERVER_LIMIT)

View on GitHub (pinned to 70b9acc424)

When it happens

Trigger: Thrown at app/Jobs/StripeProcessJob.php:247 when the library encounters an invalid state.

Common situations: See trigger scenarios.


AI-assisted analysis of coollabsio/coolify@70b9acc424 (2026-08-17). Data as JSON: /api/errors/cc04bb1de666ea3f. Report an issue: GitHub.