Active Pages Troubleshooting
Symptom-by-symptom resolutions for the most common Active Page and Active Class administrative issues. Code-level errors (compilation, runtime exceptions, debug output) are covered in the Developer Guide — this page focuses on what an administrator can resolve from the Setup pages without entering the IDE.
A User Can't See an Active Page They Should
Symptom: A portal user reports the page is missing from their navigation, or they get an unauthorized response when visiting its URL directly.
Cause: The page's sharing settings don't include any Role or User Group the user belongs to.
Resolution:
- Open the Active Page from Setup > Develop > Pages.
- Open the Share dialog from the kebab menu.
- Confirm at least one of the user's Roles or User Groups is listed.
- If the audience is a segment, share with the relevant User Group. If you cannot find the user in any group, audit their User record at Setup > Users > Manage Users.
- Use Login As to retest from the user's perspective.
All Logged-In Users Are Seeing a Page They Shouldn't
Symptom: A page intended for one segment is visible to every logged-in user, including users with no relevant Role or User Group.
Cause: The page is shared with the Guest Role. Sharing with the Guest Role grants access to all authenticated users in addition to anonymous visitors.
Resolution:
- Open the Share dialog for the page.
- If Guest Role is listed and the page should not be public, remove it.
- Add explicit Roles or User Groups for the intended audience.
- Re-test as a user who should NOT have access.
Use the Guest Role only when both anonymous visitors and all logged-in users are intended to have access.
An Embedded Active Page Won't Render Inside an Engagement Page
Symptom: An Engagement Page that contains an Active Pages widget renders fine for administrators but shows an empty area or an error for non-admin users with View access to the underlying Active Page.
Cause: Embedded rendering requires both the Engagement Page AND the Active Page to be shared with the user.
Resolution:
- Confirm the user's Role or User Group is on the Engagement Page's share list.
- Confirm the same user is also on the Active Page's share list (Role, User Group, Specific People, or Guest).
- Reload the Engagement Page as the user. The widget should now render.
A Page Shared With Guest Role Was Inaccessible to Logged-In Users
Symptom: A page shared with the Guest Role used to be visible to logged-in partner or customer users, but after a portal upgrade those users see "not authorized".
Cause: An older portal version did not consistently extend Guest-Role sharing to authenticated users. Current portal versions correctly grant access to ALL logged-in users when the Guest Role is on the share list.
Resolution: Confirm the portal is on a current version. The behavior is automatic on supported versions; no admin action is needed beyond confirming Guest Role is on the page's share list.
Selected Active Pages Aren't Loading on a Role Detail Page
Symptom: When configuring a Role's allowed Active Pages, the list of selected pages doesn't render or returns an error if you have a large number of pages selected.
Cause: An older platform version had a query length limit when loading large selections.
Resolution: Confirm the portal is on a current version. The fix is included; no admin action is needed beyond reloading the Role detail page.
A New Active Page Won't Save
Symptom: Saving a new Active Page returns a validation error on the Name field.
Cause: The Name field has strict rules — it must start with a letter and contain only letters, digits, and underscores. No spaces, hyphens, or other special characters.
Resolution: Adjust the Name to follow the pattern. The Label field has no such restrictions and can include spaces and special characters — use Label for the human-readable name and Name for the internal identifier.
A Controller Doesn't Appear in an Active Page's Controller Dropdown
Symptom: When attaching a Controller to an Active Page, the Active Class you want isn't in the dropdown.
Cause: The dropdown only lists Active Classes whose Type is Controller. Other class types (Class/Interface, Trigger, Test) are not eligible.
Resolution:
- Open the Active Class from Setup > Develop > Classes & Triggers.
- Confirm Type is Controller. If it is not and cannot be changed, create a new class with Type=Controller and migrate the logic.
- Confirm the class compiled successfully on its last save; classes with compile errors do not appear in the dropdown.
Deleting an Active Class Is Blocked
Symptom: The Delete action returns an error referencing dependent objects.
Cause: Deletion is restricted while the class is referenced by an Active Page's Controller field, by another Active Class, or by an enabled Trigger or Cron Job.
Resolution:
- Audit Active Pages with the class in their Controller field. Reassign or remove the reference.
- Audit other Active Classes that import or call the class. Update or remove the reference.
- If the class is a Trigger, disable or remove its Trigger binding before deleting.
- Check Setup > Manage > Scheduled Jobs for any Cron Job that runs an action on the class.
- Retry Delete after dependencies are resolved.
Cloning Doesn't Copy Sharing
Symptom: A cloned Active Page or Class is invisible to portal users who could see the original.
Cause: Clone copies content, Type, and Version, but not sharing. The clone starts with admin-only access by design.
Resolution: Open the cloned record's Share dialog and add the Roles, User Groups, or Specific People needed.
A Page Renders Fine on Desktop But Looks Wrong on Mobile
Symptom: The Active Page renders correctly in a desktop browser, but mobile or tablet users see a broken layout.
Cause: Either the page has no Mobile Content / Tablet Content variant defined and the desktop markup is not responsive, or the variant is defined but contains an error.
Resolution:
- If the desktop markup should adapt to mobile, ensure responsive components and CSS are in use. The Developer Guide covers responsive component options.
- If a dedicated Mobile or Tablet variant is intended, add it from the IDE and test on the target device class.
"Edit" From the Setup Page Didn't Open the Code Editor
Symptom: Clicking Edit from Setup > Develop > Pages or Setup > Develop > Classes & Triggers opened a metadata form instead of the IDE you expected.
Cause: The Setup pages manage the record's metadata only (Label, Description, Type, Version, attached Controller for pages). The IDE is a separate workspace.
Resolution: Open the IDE from the Open in IDE button on the record's detail view, or navigate directly to /sys/ide. The IDE is where markup, components, and source code are authored.
A Trigger Doesn't Fire
Symptom: An Active Class of type Trigger should run on entity events but doesn't.
Cause: The Trigger may be inactive, bound to the wrong entity or lifecycle event, or failing to compile.
Resolution:
- Open the Trigger class and confirm it compiled successfully on its last save.
- Confirm the entity and lifecycle event binding inside the IDE.
- Confirm the Trigger is enabled.
- For deeper diagnostics, see Trigger Lifecycle & Code Structure in the Developer Guide.
<< Custom Labels