Docs/Troubleshooting

Troubleshooting

Solutions to the most common issues in Hygate.


Quick Diagnostics

Before diving into specific issues, check these first:

CheckHow
Module healthGo to Dashboard — are all integrations green?
Stripe statusCheck status.stripe.com
TTLock statusCheck ttlock.com
Shelly statusCheck shelly.cloud
Audit logsAny recent errors logged?

Authentication Issues

Can't Log In

CauseSolution
Wrong passwordClick "Forgot Password" on the login page
Account deactivatedContact an administrator to reactivate your account
2FA code wrongCheck that your authenticator app time is synced; try a fresh code
Email OTP not receivedCheck spam folder; verify the email address is correct
Session expiredLog in again with credentials and 2FA

2FA Setup Problems

IssueSolution
Can't scan QR codeManually enter the secret key displayed below the QR code
Lost authenticator appUse a backup code or contact an admin to reset 2FA
Time mismatchEnable automatic time sync in your authenticator app
Codes not workingTry the next code in sequence — old codes are invalid

Password Reset Not Working

  1. Check that the reset email hasn't expired (links expire after 1 hour)
  2. Try requesting a new reset link
  3. Check spam folder
  4. Verify you're clicking the link from the same browser where you requested it

Integration Issues

TTLock Connection Failed

CheckAction
CredentialsVerify Client ID, Client Secret, username, and password in Settings → TTLock
TTLock API statusGo to ttlock.com and check for service disruptions
NetworkEnsure Hygate can reach euapi.ttlock.com
Account ownershipVerify your TTLock account owns the locks you want to sync

Still failing? Try re-entering credentials carefully (no extra spaces), then test again.

Shelly Connection Failed

CheckAction
Auth KeyVerify the Auth Key in Settings → Shelly matches what's in Shelly Cloud
Devices onlineCheck Shelly Cloud app — are your devices showing as online?
NetworkEnsure Shelly devices are connected to WiFi
Server URLLeave the server URL at its default unless you have a custom deployment

Stripe Webhook Not Working

CheckAction
Webhook URLVerify the endpoint is configured as https://your-domain/api/stripe/webhook
Mode matchEnsure Stripe Dashboard is in the same mode (test/live) as your Hygate settings
Events subscribedCheck that payment_intent.succeeded and charge.refunded are both selected
HTTPSWebhooks require HTTPS — ensure Hygate is served over TLS

Test locally: Use the Stripe CLI:

stripe listen --forward-to localhost:3000/api/stripe/webhook

Stripe Test Payments Not Working

CheckAction
Test modeEnsure Hygate is using test API keys (pk_test_, sk_test_)
Test cardUse 4242 4242 4242 4242 with any future expiry and any 3-digit CVC
Card declinedTry 4000 0000 0000 0002 for a declined card to verify error handling
3D SecureUse 4000 0025 0000 3155 to test 3D Secure flows

Payment Issues

Payment Failed — Card Declined

What guest sees: "Your card was declined. Please try a different card."

What to check:

  1. The card may have insufficient funds
  2. The card issuer blocked the transaction — guest should contact their bank
  3. Try a different card

Payment Failed — Requires 3D Secure

What guest sees: Redirected to their bank's verification page

This is normal. 3D Secure adds an extra verification step. The payment completes after the guest completes the verification on their bank's page.

Payment Shows PENDING

CauseSolution
Webhook not receivedCheck Stripe Dashboard → Developers → Logs for webhook delivery
Network timeoutWait 30 seconds — Stripe may still deliver the webhook
Test mode keys used with live StripeSwitch to correct keys

Payment Succeeded but No Access Code (Doors)

  1. Check the Payments module — is there a SUCCEEDED payment record?
  2. Check Audit Logs for payment_confirmed event
  3. Check TTLock integration — did QR code generation succeed?
  4. Verify the door is not in Maintenance Mode

Payment Succeeded but Session Didn't Start (Devices)

  1. Check the Sessions module — is there an ACTIVE session?
  2. Check Audit Logs for session_activated or shelly_on_failed
  3. If shelly_on_failed appears — check Shelly device connectivity
  4. Try manually turning the relay ON from the device page

Refund Not Showing

  1. Verify the refund was initiated in Stripe Dashboard
  2. Check for charge.refunded in Stripe webhook logs
  3. Verify the REFUNDED status in Hygate Payments module
  4. Refunds typically appear within seconds — wait 1-2 minutes before troubleshooting further

Door Issues

Door Not Syncing from TTLock

  1. Verify TTLock integration is configured and green in Dashboard
  2. Check that your TTLock account has the lock registered
  3. Check TTLock developer portal for API rate limits
  4. Try syncing again — some locks require multiple sync attempts

QR Code Won't Scan

CauseFix
Print quality too lowRe-print at 300+ DPI
Print too smallEnsure minimum 2.5cm × 2.5cm
Damage or smudgesRegenerate and reprint the QR code
Reflective surfacePlace on matte surface; laminate with matte film
Wrong page loadedVerify the QR code URL is correct

Door Stuck in Maintenance Mode

  1. Go to Doors
  2. Open the door detail page
  3. Change status to Active
  4. Save

If the status dropdown doesn't change or doesn't save, check your operator permissions — operators may not be able to change status.

Passage Mode Not Working

Passage mode must be configured in the TTLock app or TTLock Gateway settings, not in Hygate. Hygate only displays the current passage mode status.

To configure passage mode in TTLock:

  1. Open the TTLock app
  2. Select the lock
  3. Find Passage Mode / Auto Unlock settings
  4. Set your desired schedule
  5. Verify in Hygate that the door status reflects the passage mode

Device Issues

Device Showing Offline

CheckAction
Shelly device powerIs the device powered on?
WiFi connectionCan the device reach your WiFi network?
Shelly Cloud statusCheck shelly.cloud for service status
Shelly appCan you control the device from the Shelly app directly?

If the device works in the Shelly app but shows offline in Hygate, try:

  1. Re-syncing from Settings → Shelly
  2. Re-entering the Auth Key
  3. Checking for Shelly Cloud account issues

Relay Won't Turn On

  1. Check the device is not in Maintenance Mode
  2. Check there is no conflicting ACTIVE session on the same device
  3. Check Audit Logs for shelly_on_failed — what's the error message?
  4. Try the Power ON button again — relay commands have automatic retries
  5. Manually test the device from the Shelly Cloud app

Session Stuck on "Finishing..."

This means the relay OFF command has been sent but the session hasn't marked as COMPLETED yet.

  1. Wait up to 5 minutes — the cleanup cron runs every 5 minutes
  2. If it persists after 5 minutes, go to Sessions
  3. Find the session and click Force End

Session Cancelled Unexpectedly

  1. Check audit logs for reconciliation events
  2. Check for shelly_off_success or shelly_off_failed
  3. Check Shelly device connectivity — did the device go offline?
  4. Check power supply to the Shelly device

Wrong Usage Plan Charging

The price is locked at the time of payment creation. If the plan was changed after the payment was initiated but before it was confirmed, the old price applies.

If you need to correct the price:

  1. Refund the payment in Stripe Dashboard
  2. Adjust the usage plan in Hygate
  3. Ask the guest to re-purchase

QR Code / Access Issues

QR Code PDF Generation Fails

  1. Verify TTLock integration is configured
  2. Check that the door has a valid uid (TTLock lock ID)
  3. Try regenerating the QR code
  4. Check browser console for JavaScript errors

Access Code Not Working at Lock

  1. Verify the access code hasn't expired (check the access duration from the payment)
  2. Ensure the guest is scanning the correct QR code from the access page
  3. Try regenerating the QR access code from the door page
  4. Check TTLock lock status — some locks require a specific orientation or position to scan

Dashboard and Reporting

Module Health Red

ModuleCheck
TTLockSettings → TTLock credentials; ttlock.com service status
ShellySettings → Shelly Auth Key; shelly.cloud service status
StripeSettings → Stripe keys; Stripe Dashboard status

Reports Not Showing Data

CauseSolution
No payments yetReports only show data after the first successful payment
Wrong date rangeTry expanding the date range
Wrong location filterRemove location filter to see all data
Timezone differenceReports use the server's timezone

General Issues

Page Won't Load

CheckAction
HTTPSEnsure you're accessing via HTTPS (required for webhooks and security)
Server runningCheck that the Hygate server process is running
Browser cacheClear browser cache or try incognito mode
NetworkCheck your network connection

Slow Performance

  1. Check database connection pool — too many connections?
  2. Monitor server CPU and memory
  3. Check for long-running database queries in audit logs
  4. Review cron job execution times

Data Missing or Incorrect

  1. Check Audit Logs — was the action performed?
  2. Check Reports — is the date range correct?
  3. Check Filters — are filters hiding the data?
  4. Try refreshing the page

Getting More Help

If you can't resolve an issue:

  1. Check audit logs — they contain detailed event information
  2. Check integration service status — Stripe, TTLock, Shelly
  3. Gather diagnostic info — timestamps, user emails, payment IDs, error messages
  4. Contact your administrator — they can check integration settings and credentials