Table of Contents


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:

  1. Open the Active Page from Setup > Develop > Pages.
  2. Open the Share dialog from the kebab menu.
  3. Confirm at least one of the user's Roles or User Groups is listed.
  4. 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.
  5. 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:

  1. Open the Share dialog for the page.
  2. If Guest Role is listed and the page should not be public, remove it.
  3. Add explicit Roles or User Groups for the intended audience.
  4. 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:

  1. Confirm the user's Role or User Group is on the Engagement Page's share list.
  2. Confirm the same user is also on the Active Page's share list (Role, User Group, Specific People, or Guest).
  3. 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:

  1. Open the Active Class from Setup > Develop > Classes & Triggers.
  2. Confirm Type is Controller. If it is not and cannot be changed, create a new class with Type=Controller and migrate the logic.
  3. 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:

  1. Audit Active Pages with the class in their Controller field. Reassign or remove the reference.
  2. Audit other Active Classes that import or call the class. Update or remove the reference.
  3. If the class is a Trigger, disable or remove its Trigger binding before deleting.
  4. Check Setup > Manage > Scheduled Jobs for any Cron Job that runs an action on the class.
  5. 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:

  1. Open the Trigger class and confirm it compiled successfully on its last save.
  2. Confirm the entity and lifecycle event binding inside the IDE.
  3. Confirm the Trigger is enabled.
  4. For deeper diagnostics, see Trigger Lifecycle & Code Structure in the Developer Guide.

<< Custom Labels

Last updated on 5/8/2026

Attachments