Skip to content

Running the platform

Troubleshooting

symfony serve command not found

Symfony CLI is not installed or not available in your terminal PATH.

Options:

  • Install Symfony CLI from the official Symfony website.

  • Use PHP's built-in server for quick local testing:

    php -S 127.0.0.1:8000 -t public

JWT login error

Error:

An error occurred while trying to encode the JWT token.

Common causes:

  • JWT keys do not exist.
  • JWT_PASSPHRASE does not match the private key.
  • The web server cannot read config/jwt/private.pem.

Fix:

php bin/console lexik:jwt:generate-keypair --skip-if-exists

Then confirm .env.local contains the correct JWT paths and passphrase.

Register works but login fails

Registration may not need to encode a JWT, while login does. If registration works and login fails with a JWT error, check JWT configuration first.

Refresh token test

Call:

POST /api/v1/users/token/refresh

Body:

{
  "refreshToken": "refresh_token_from_login_response"
}

If successful, the response should contain a new access token and refresh token.

Admin access denied

If a user reaches an access denied page after login:

  • Confirm the user has ROLE_ADMIN for the admin panel.
  • Confirm the user has ROLE_VENDOR or ROLE_ADMIN for the vendor admin panel.
  • Log out and log back in after role changes.

Vendor admin says no vendor is associated

The logged-in user has vendor admin permissions but is not linked to a vendor record.

Fix:

  • Open the main admin panel.
  • Go to Users or Vendors.
  • Link the user to the correct vendor record.
  • Try logging in to vendor admin again.

Mobile app calls the wrong backend

Check:

store/axiosInstance.ts

Update the live URL and local development behavior. For production, use:

https://your-domain.com/api

Stripe payment fails

Check:

  • Backend Stripe secret key in admin Payment Settings.
  • Backend Stripe publishable key in admin Payment Settings.
  • Mobile Stripe publishable key.
  • Stripe webhook secret in admin Payment Settings.
  • Order currency.
  • Whether the app is using test keys against test mode or live keys against live mode.
  • Apple Pay or Google Pay setup if wallet payments fail.

Stripe webhook not received

Confirm:

  • Stripe webhook URL is https://your-domain.com/api/v1/webhook/stripe.
  • The endpoint is reachable over HTTPS.
  • The webhook signing secret matches the value saved in admin Payment Settings.
  • Your server is not blocking Stripe requests.

Pusher events do not arrive

Confirm:

  • Backend Pusher app ID, key, secret, and cluster.
  • Mobile Pusher key and cluster in app/env.ts.
  • The rider is authenticated and subscribed to the expected channel.
  • The Pusher app is active.

Google Maps or Places do not work

Confirm:

  • Backend Google Maps API key.
  • Mobile EXPO_PUBLIC_GOOGLE_MAPS_API_KEY.
  • Google Cloud APIs are enabled.
  • API key restrictions allow the app or server using the key.

Uploads do not work

Check:

  • Storage driver setting.
  • Local upload directory permissions.
  • S3 bucket name, region, key, and secret.
  • Public URL or CDN configuration for uploaded assets.

Production shows old CSS or JavaScript

Rebuild assets:

npm run build
php bin/console cache:clear --env=prod

Then clear browser cache or CDN cache if used.

Found a mistake? Tell us.