# Why does my URL contain `/public`?

Your domain points at the application directory instead of its public/ subdirectory.

Correct the web server document root; do not move `.env` or application code into the public web directory.

## Why do I get a 500 error after uploading?

Check `storage/logs/laravel.log`. Common causes are a missing hidden file, unsupported PHP version, missing extension, unwritable `storage/` or `bootstrap/cache/`, incomplete upload, invalid `.env`, or database connectivity.

## Why do workflows remain queued or stop after the first request?

Confirm `Admin → Settings → Runtime → Queue` is configured, the flow uses Background worker mode, and the displayed worker command is running continuously. Then inspect failed jobs and application logs.

## Why are scheduled, email-triggered, or waiting flows not resuming?

These features depend on `php artisan schedule:run` every minute. Check the cron entry, PHP path, application path, server timezone, scheduler heartbeat, and logs.

## Why does an OAuth provider reject the callback?

Make sure the production App URL is correct and that the callback URL displayed in the JustFlows admin setting exactly matches the provider application. Check HTTPS, hostname, port, trailing slash, provider scopes, client secret, and environment-specific applications.

## Why do AI calls fail while the key looks correct?

Confirm the selected model is available to that provider account and region, the base URL is correct, outbound HTTPS works, credit/rate limits allow the call, and the workspace agent uses the intended AI account. Review the run error and provider response without exposing the key.

## Why do uploads fail after changing storage?

Verify the bucket exists, credentials and region/endpoint are correct, the web and worker processes use the same settings, required CORS/public URL rules are present, and the provider permits the requested operation. JustFlows reverts a storage setting when its validation check fails.

## Why does the public webhook return 401 or 404?

`401` means the Bearer token or `X-JustFlows-Webhook-Secret` is missing or wrong. `404` means the trigger is missing/inactive or the requested run was not created by that trigger. Also confirm the flow version is published.

## Why can a workspace see a feature but not use it?

Review its active subscription/trial, current usage, and the plan entitlements for integrations, approvals, Flowy, agents, MCP servers, knowledge bases, storage, members, and monthly runs.
