Troubleshooting
This page lists the issues we see most often and the fastest way through them.
"REST returns 404 / nothing loads in the admin"
Symptom: The admin React shell shows blank panels; the network tab shows 404 for /wp-json/sikshya/v1/....
Cause: Pretty permalinks are off, or a security plugin is blocking REST.
Fix:
- Go to Settings → Permalinks. Pick Post name (or any non-Plain). Click Save Changes.
- Visit
/wp-json/sikshya/v1/in a browser. You should see JSON, not 404. - If you have Wordfence, iThemes Security, etc., temporarily allow
wp-jsonfor your IP.
"Permalinks 404 on the front of the site"
Symptom: /courses/, /cart/, /checkout/, /my-learning/ all return 404.
Fix: Open Settings → Permalinks and click Save Changes (no need to change anything; saving flushes rewrite rules). Or run wp rewrite flush via WP-CLI.
"Stripe doesn't show up under Settings → Payment" PRO
Symptom: PayPal is listed, but you can't find Stripe — or you see only an "Upgrade to enable" prompt where Stripe should appear.
Cause: Stripe is a Pro-only add-on — it isn't bundled with the free Sikshya plugin. The gateway list under Settings → Payment only contains the gateways your Pro license unlocks.
Fix:
- Install Sikshya Pro alongside the free plugin and activate your license under Sikshya → License.
- Open Sikshya → Add-ons, find Stripe, and toggle it on.
- Stripe now appears under Sikshya → Settings → Payment — paste your keys and webhook secret.
"PayPal webhook shows but no order is fulfilled"
Symptom: PayPal logs show 200 from your site, but the order stays pending.
Cause: Webhook ID mismatch (sandbox vs live), missing client id / secret, or REST routes blocked by security.
Fix:
- Open Sikshya → Settings → Payment → PayPal. Confirm Mode matches the webhook (sandbox vs live), and Webhook ID matches the PayPal dashboard.
- Confirm REST is reachable — visit
/wp-json/sikshya/v1/webhooks/paypal(you should get a 405 method-not-allowed for a GET, not a 403). - Check Tools → Activity log for webhook errors.
"Stripe webhook signature mismatch"
Symptom: Stripe says webhook delivery failed; Sikshya logs say "invalid signature".
Cause: Webhook secret in Sikshya doesn't match Stripe's webhook signing secret.
Fix:
- In Stripe → Developers → Webhooks → click your endpoint → Reveal secret under Signing secret (
whsec_...). - Paste it into Sikshya → Settings → Payment → Stripe → Webhook secret.
- Save. Re-send a test event in Stripe.
"Emails aren't arriving"
Symptom: No enrollment / receipt / completion emails reach the learner.
Fix:
- Install a transactional email plugin: WP Mail SMTP, FluentSMTP, or Post SMTP.
- Connect to a transactional ESP: SendGrid, Postmark, Amazon SES, Mailgun.
- Set From name and From email to a
noreply@on your sending domain. - Configure SPF, DKIM, and DMARC on the From domain.
- Test deliverability via mail-tester.com.
The Pro Professional email delivery & branded templates add-on streamlines ESP setup with a guided UI and adds a branded multi-template kit.
Unlock branded delivery →"Apply to teach doesn't grant the role"
Symptom: A user submits the instructor application but doesn't get the sikshya_instructor role automatically.
Cause: This is by design. Applications are recorded as pending — an admin must approve them.
Fix: Go to Sikshya → People → Applications and click Approve.
"Setup wizard never finishes"
Symptom: After activation, you can't get past the setup wizard.
Fix:
- Make sure your account has
manage_options. - Disable WAF / Security plugins temporarily, run the wizard, re-enable.
- If still stuck: open Sikshya → Tools → Maintenance → Open setup wizard to re-run.
"I deactivated Pro and lost some data"
Symptom: After turning off Sikshya Pro, gradebook / drip / advanced certificates disappear.
Cause: Pro features render only when their add-on is on. Stored data is preserved.
Fix: Re-enable the add-on under Sikshya → Add-ons to bring back the UI.
"Course content shows but progression is locked"
Symptom: A learner is enrolled but can't open the next lesson.
Cause: Sequential progression is on (default in free) and a previous lesson hasn't been completed; or a Pro drip or prerequisite rule applies.
Fix: Have the learner mark the current lesson complete. Or, as admin, manually mark lessons complete.
"Cache plugin breaks checkout / login"
Symptom: Login form keeps showing logged-out state; checkout looks blank.
Cause: Page cache is serving the logged-out version of a session-specific page.
Fix: Exclude these from your page cache:
/cart/,/checkout/,/my-learning/,/learn/,/order/,/login//wp-json/sikshya/v1/checkout/*,/wp-json/sikshya/v1/me/*
"PHP fatal errors after enabling Pro"
Symptom: White screen of death right after activating Sikshya Pro.
Cause: Mismatched plugin versions, or Pro was activated before Free.
Fix:
- Add
define('WP_DEBUG', true); define('WP_DEBUG_LOG', true);towp-config.php. - Re-read the error in
wp-content/debug.log. - Update both plugins to the latest versions.
- Activate Sikshya first, then Sikshya Pro.
"I'm on a case-sensitive Linux host and templates don't load"
Symptom: A template override in your theme isn't picked up.
Cause: macOS dev is case-insensitive; production Linux is case-sensitive. A template with the wrong case in the path silently fails.
Fix: Match Sikshya's exact casing — templates/single-course.php, templates/partials/courses/card.php, etc.
"REST returns 403 for an admin user"
Symptom: Admin REST routes return rest_forbidden.
Cause: Cookie session expired, missing X-WP-Nonce, or a role plugin removed a capability.
Fix:
- Refresh the WordPress admin page (re-issues a fresh nonce).
- Confirm your user has
manage_sikshyaandsikshya_access_admin_app. - Check that a role plugin (Members, User Role Editor) didn't remove those caps from administrator.
"Pro license shows valid in Mantrabrain dashboard but Sikshya says invalid"
Symptom: Account dashboard says Active; Sikshya → License says invalid.
Cause: License key activated on too many sites, or the site URL differs (www. mismatch).
Fix:
- Open the Mantrabrain account dashboard and confirm site limits.
- Deactivate old / dev URLs.
- Click Check status in Sikshya → License.
Diagnostics tools
- Sikshya → Tools → System status — PHP, WP, server, plugin versions.
- Sikshya → Tools → Maintenance — clear cache, reset settings, import sample data.
- Sikshya → Tools → Activity log PRO — webhook + email + general logs.
When to file a bug
Before filing, please:
- Update both Sikshya and Sikshya Pro to the latest.
- Disable other plugins one by one to rule out conflicts.
- Switch to a default theme briefly to rule out theme conflicts.
- Capture the exact steps + a
WP_DEBUGlog of the error.
Then file a bug on GitHub (free) or open a priority support ticket (Pro).