Troubleshooting ServiceNow Service Portal: A Practical Guide
This guide helps administrators work out why a ServiceNow Service Portal page fails, starting with the people affected and the first check for each symptom. It covers slow pages, widgets that do not display, search gaps, access denied errors and widgets that do not refresh after a save, and when to escalate.
Troubleshooting Service Portal starts from who is affected before what is broken: the portal not loading or slow, widgets missing or erroring, search returning the wrong results, access denied errors, and widgets not updating after a save. Each section below pairs a symptom with the first check (network tab, system logs, widget configuration, data source permissions), followed by inspection points, escalation guidance and what to hand over when escalating.
Portal Not Loading or Very Slow
If the Service Portal is not loading or is extremely slow, first check whether it is an infrastructure issue (network, browser) or a platform issue. Open the browser’s developer tools and check the network tab: if requests are taking multiple seconds, the issue may be a slow ServiceNow instance or a slow network. If requests are fast but the portal is still slow, the issue may be poorly optimized JavaScript on the portal page.
Check the ServiceNow system logs for errors. Search for errors in the timeframe when users reported slowness. If no errors appear, the issue is likely performance optimization rather than a broken feature. Check whether a new widget or script was recently added to the portal; the new addition may be causing slowness.
Widgets Not Displaying or Showing Errors
If a widget is missing or displays an error, check whether the widget is configured correctly on the portal page. In the Service Portal administration, open the portal and page, and verify the widget exists and is assigned to the correct area (left, center, right, footer). Check whether the widget has required parameters configured. For example, a ‘Incidents’ widget may require a filter query; if the query is missing or malformed, the widget will not display data.
Check the widget’s data source. If the widget queries a ServiceNow table, verify that the table exists and the widget’s user has permission to read it. If the widget integrates with an external system (such as a monitoring tool), check whether the integration is still active and whether API credentials are valid.
Search Not Returning Expected Results
If portal search is not returning expected articles or records, check the search configuration. Search can be configured to query knowledge articles, IT services, or custom tables. Verify that the search is querying the correct table. If search is configured correctly but still returns no results, the issue may be indexing: if records were added but the search index was not updated, search will not find them.
Check whether the user has permission to read the records they are searching for. If records are restricted by role or security rule, the search will not return them to users without permission.
Portal Access Denied Errors
If a user cannot access the portal or sees an ‘Access Denied’ error, check the user’s roles and group memberships. The portal may be restricted to certain roles (for example, ‘self-service user’). Check whether the user has the required role. Also check whether the portal itself is restricted: some portals are available only to authenticated users, others are available to the public.
Check whether the user’s account is active. An inactive user account will be denied access even if the role is correct.
Portal Widgets Not Updating After Save
If a user changes a setting in the portal (for example, they update their profile), but the portal does not reflect the change, the issue may be caching. The portal may be caching data client-side, and a hard browser refresh (Ctrl+Shift+R) may be needed to clear the cache. If a hard refresh does not work, check whether the widget is correctly saving data back to ServiceNow. Some widgets are read-only and do not accept updates.
Lookups and Inspection Points
- Portal Configuration: Check whether the portal is published (active), whether the page is published, and whether widgets are configured and assigned to portal areas
- Widget Properties: Required parameters should be configured; if a parameter is missing, the widget may not display
- Security Rules and ACLs: Check whether the user’s role and group memberships allow access to the portal and to the data the portal displays
- Search Configuration: Check which table is being searched and whether the user has permission to read that table
- Integration Health: If the portal integrates with external systems, check whether API credentials are valid and whether the external system is reachable
- Browser Cache: Clear browser cache and do a hard refresh; portal data may be cached client-side
When to Escalate
If a portal is slow and optimization does not help, check instance performance metrics. If a widget is configured correctly but still not displaying, there may be a JavaScript error in the widget code. If search is not finding records that should be there, the search index may need to be rebuilt. Document the exact symptom and escalate to the platform team with this information.
Preventive Measures
- Test portal load times regularly; set a baseline for acceptable performance
- Monitor integration health; if external APIs are unavailable, portal features will break
- Review portal access control quarterly; remove old roles or group restrictions that may now prevent access
- Update widget configurations when underlying data sources change (new required fields, changed table names)
Triage Order: Who Is Affected Before What Is Broken
Portal tickets often arrive as a single sentence, such as “the portal is broken”. Before opening any configuration, establish three facts: how many people are affected, whether they share a role or a browser, and whether the fault appears on every page or on one. A problem that affects one persona on one page is usually an access or data issue. A problem that affects everyone on every page is usually platform-wide, a failed integration or a publishing error.
- Ask for the account name of one affected user and the exact time of the failure.
- Check whether a test account with the same role sees the page correctly. If it does, the problem is in the user’s data or session, not in the portal.
- Check whether the page fails for everyone. If yes, look at recent publishing and integration activity before touching widgets.
- Reproduce the failure as the affected user, using impersonation where your policy allows it, so the error appears in the same context the user saw.
- Only then open widget or page configuration, with the reproduction steps in hand.
Reproduce as the User, Not as the Builder
Developers reproduce problems from their own accounts, which hold broad rights and see pages that ordinary users never reach. A fault that a developer cannot reproduce is often a permission difference, and the fix lies in the user’s roles, group memberships or the ACL that applies to a field, not in the widget. Impersonation, where it is permitted, shows the page the way the user received it. Record the role list of the affected account before you change anything, because roles removed during investigation cannot be compared afterwards.
Matching Symptoms to the First Check
The table below sets out the first check for each common symptom and the team that usually owns the next step. It is a starting point for triage, not a diagnosis.
| Symptom | First check | Usual next owner |
|---|---|---|
| Blank page after sign-in | Roles and default page assigned to the user’s group | Platform administrator |
| One widget empty, others fine | Widget parameters and the table it reads | Portal developer |
| Rows visible to some users only | Query scope and ACLs on the table | Platform security |
| Search finds nothing new | Whether the record is in the searched table and the index has caught up | Platform administrator |
| Form submits but nothing is created | Client script or catalog script that stops the submission | Catalog owner |
| Slow page for a few users only | Network location, browser and any large list on the page | Infrastructure team |
Widget-Level Faults That Hide in Plain Sight
Some widget problems produce no visible error. A server script can fail inside a catch block that returns an empty object, so the template renders nothing and the browser console shows no exception. A client controller can call a server method that was renamed in an earlier change. Check the browser console and the network calls first, then the server-side log for the same time window. Compare the response body with what the template expects, since a field renamed in the query will quietly leave a blank space on the page.
Caching adds a second layer. A user who reports stale data after an update may be seeing a cached response from the browser or a cached widget payload. Test with a private browsing window before assuming the data is wrong.
When a Fix Is Not Working
Stop after two unsuccessful changes and step back. Repeated edits to the same widget usually mean the fault sits somewhere else, most often in an ACL, a business rule that runs before the widget loads, or an integration the page depends on. Write down the hypothesis behind each change and the result it produced. That record matters because it stops a second engineer from repeating an edit that already failed.
What to Hand Over When Escalating
An escalation that contains only “it is not working” will return to the sender. A useful handover includes the account name and roles of the affected user, the exact address of the page, the time of the failure, the steps that reproduce it, the browser and device, the console output and the server log entries from the same window, and the changes made so far, with their timestamps. Store that bundle against the incident so the next person does not repeat the first hour of work.
Frequently asked questions
Why does the portal work for me but not for a colleague?
Usually because the two accounts differ in roles, group membership, default page or the department attached to the user record. Compare the two role lists first. A difference in browser or network location is the next most common cause.
Is a hard refresh enough to fix stale portal content?
Sometimes. A hard refresh clears the browser’s copy of the page, but it does not change a cached response the platform has stored for the widget. If the stale content returns after a clean session, the cause is server-side, and the fix belongs with the widget owner.
Should users be told to clear their browser cache as a first step?
It is a reasonable step for a single user with a visible glitch. It is a poor first step for a widespread fault, because it hides the pattern that would have shown you the cause. Gather the facts first, then give the user the simplest workaround that is safe.
How do we stop the same fault coming back after a release?
Add the failing journey to the release checks with the persona that exposed it. A fault found once by a user rarely appears in the developer’s test run, so the persona test is the only reliable safeguard.
Several of these checks depend on the access model, so keep the security and access design guide open alongside this one. A fix that passes triage should also pass the scripts in the testing and acceptance checklist. The UI policy concept page covers a common cause of fields that vanish from a form without an error.
Repeat incidents on the same few pages usually point to a shared root cause. The related service portal widget concept page explains the building blocks that most of these checks touch.
Frequently asked questions
Why are search results showing records the user should not see?
Check whether a security rule is restricting record visibility. The search index may include records before the security rule was applied. Rebuild the search index or clear the cached results.
Can we customize the Service Portal without code?
Yes, widgets can be configured without code changes. However, custom widgets or custom styling requires JavaScript and CSS. Use the widget builder to create simple portals, and escalate custom work to developers.
What should we do if a portal widget breaks after a ServiceNow update?
ServiceNow updates may change APIs that widgets depend on. Check the update release notes to see if any widget APIs changed. If a widget broke due to an update, contact the widget vendor or developer to request an update.
Related guides
Related Oblytech services
Where this topic turns into delivery work, these are the Oblytech services that cover it.
Planning, running or fixing a ServiceNow programme? Tell us where you are and we will suggest a sensible next step.
Contact us