Skip to content

馃悰 v2 Publish dialog blocks publishing in non-SaaS mode: Connect Stripe shown although Stripe keys are configured聽#1369

Description

@zigman79

Describe the bug

On a self-hosted instance with APP_SAAS_MODE_ENABLED=false and Stripe configured directly via STRIPE_PUBLIC_KEY / STRIPE_SECRET_KEY / STRIPE_WEBHOOK_SECRET, the new publish dialog in v2.0.0-rc.1 blocks publishing any event that has paid tickets:

Connect Stripe to accept payments
You have paid tickets, but Stripe isn't connected yet, so you can't take payments.

The "Publish" button is disabled ("Fix issues to publish"). Stripe payments work fine on this instance; checkouts are processed with the configured keys.

Cause

frontend/src/components/modals/PublishEventModal/index.tsx:

const isStripeEnabled = !!eventSettings?.payment_providers?.includes('STRIPE');
const isStripeConnected = !!organizer?.stripe_connect_setup_complete;
...
if (hasPaidProducts && isStripeEnabled && !isStripeConnected) {
    checks.push({ key: 'stripe', blocking: true, ... });
}

backend/app/Resources/Organizer/OrganizerResource.php only includes stripe_connect_setup_complete when config('app.saas_mode_enabled') is true. In non-SaaS mode the field is always undefined, so isStripeConnected is always false and the check always blocks.

The event dashboard and setup checklist already guard this with (!isSaasMode || isStripeConnected). The publish modal is missing that guard. This looks like the same class of bug as #791.

To Reproduce

  1. Self-host v2.0.0-rc.1 (all-in-one image) with APP_SAAS_MODE_ENABLED=false and Stripe keys set in .env.
  2. Create an event with a paid ticket, Stripe enabled as payment provider.
  3. Click "Publish".
  4. The Stripe blocker is shown and publishing is not possible.

Expected behavior

In non-SaaS mode, skip the Stripe Connect check (e.g. if (isSaasMode && hasPaidProducts && isStripeEnabled && !isStripeConnected)), or have the backend expose whether Stripe is configured via env keys.

Workaround

The backend UpdateEventStatusHandler does not check Stripe, so setting the event status to LIVE another way works.

Hi.Events Version and platform

  • Version: v2.0.0-rc.1 (daveearley/hi.events-all-in-one:v2.0.0-rc.1)
  • Platform: self-hosted Docker Compose, PostgreSQL 17

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions