Still stuck? Email support@mfoundry.io or open a support ticket directly from the dashboard by clicking the Help icon in the bottom-left navigation and selecting Open a Ticket. Include the error code, affected resource ID, and approximate time of the incident to help the team respond faster.
Authentication Issues
Authentication failures surface as HTTP401 or 403 responses and almost always come down to a key problem or a permissions mismatch.
Debugging tip: Pass the
-v flag with cURL or inspect the WWW-Authenticate response header — mFoundry includes a machine-readable error code and a human-readable message in every 4xx response body:
Webhook Failures
Webhook delivery problems fall into three categories: the endpoint is unreachable, the signature doesn’t match, or your endpoint can’t parse the payload. Checking delivery logs: Open Settings > Webhooks, click the webhook in question, and select the Delivery History tab. Each entry shows the event type, delivery timestamp, HTTP response code your endpoint returned, and the full response body. Use this log as your first stop — it tells you exactly what mFoundry sent and how your endpoint responded. Endpoint unreachable:- Confirm the endpoint URL is publicly accessible. mFoundry cannot reach internal or localhost addresses.
- Check that your server or load balancer accepts POST requests and does not redirect HTTPS to HTTP (mFoundry does not follow redirects).
- Verify TLS certificate validity — expired or self-signed certificates cause connection failures.
- Temporarily use a tool like Webhook.site as a test endpoint to confirm mFoundry is sending the payload correctly.
- Ensure you are computing the HMAC using the raw, unparsed request body — not a re-serialized JSON object. Parsing and re-stringifying changes whitespace and key order, which alters the signature.
- Confirm you are using the correct secret key for this specific webhook. Each webhook has its own unique secret.
- See Verifying Signatures for the reference Node.js implementation.
- Verify your endpoint reads the
Content-Type: application/jsonheader and parses the body as JSON. - Check for middleware (e.g., body-parser or framework defaults) that may consume or transform the raw body before your signature verification code runs.
Integration Problems
Native integrations (Slack, GitHub, Jira) use OAuth tokens that can expire or lose their granted scopes. OAuth token expired: Symptoms: the integration shows a red Disconnected badge in Settings > Integrations, or workflow steps using the integration return authorization errors in their run logs. To re-authorize:1
Open Settings > Integrations
Navigate to Settings > Integrations and locate the affected integration.
2
Click Reconnect
Click Reconnect (or Re-authorize) next to the integration. You are redirected to the provider’s OAuth consent screen.
3
Grant the required permissions
Sign in to the provider and approve the requested scopes. mFoundry displays the exact permissions it needs — do not deselect any listed scope or the integration will partially fail.
4
Confirm the connection
After approving, you are redirected back to mFoundry. The integration status changes to Connected. Trigger a test workflow to confirm the connection is working end to end.
Performance
Slow API responses:- Check the mFoundry Status Page first — elevated response times during a platform incident are not something you can resolve locally.
- Reduce payload size by using field selection parameters where available to fetch only the properties your application needs.
- Cache responses for resources that change infrequently (e.g., organization settings, member lists) rather than fetching them on every request.
- Move non-critical API calls to background jobs so they don’t block user-facing request paths.
The
Retry-After header on a 429 response tells you exactly how many seconds to wait. Honor it — retrying sooner resets the backoff and prolongs the lock-out window.