← Back to marketplace
Platform & Admin Tools

Broken References

Published by NowForgefirst-party

What it does

A reference field holds the id of a row in another table. The caller on an incident. The owner of a configuration item. The manager on a user record.

Delete that row - offboard the person, retire the CI, clean up after an import • and the pointer stays behind, pointing at nothing.

This finds those.

Why nobody notices

Nothing errors.

The form shows an empty field with no explanation. The notification addressed to that person goes nowhere and reports itself as sent. The report that groups by that field quietly drops the record from the total, so the number is wrong and looks fine.

ServiceNow ships no screen for this. There is no flag on the record and no "broken references" module. Finding them means walking the dictionary for reference fields and checking every pointer's target yourself.

What the measurement said

On the development instance this was built against, a default sweep across ten tables found 54 of 3,258 pointers checked pointing at a record that no longer exists - on a near-vanilla instance with almost no history.

That count grows with the age of an instance rather than shrinking. Every person offboarded and every CI retired leaves more behind.

It samples, and it says so

This is the part worth understanding before you read a result.

Checking every pointer on a real instance would be the outage it was opened to prevent. So it reads a bounded number of rows per table - 150 by default, newest first, up to 500 - stops after 6,000 pointers, and tells you exactly how many it checked.

Which means a result of none is a clean sample, not a clean instance, and every screen says that rather than letting you read silence as safety. There is a screen listing which tables were in the sweep, which are present on your instance, and which it could not read.

It also reads inherited reference fields. Most of what incident and change_request point at is defined on sys_task, and a version that read only a table's own dictionary rows would check almost nothing and hand back an empty answer that looked clean.

What it will not do

It cannot repair anything. There is no write path in this application at all - not disabled, not behind a flag.

That is deliberate rather than unfinished. A pointer that goes nowhere is the last remaining evidence of what the record used to be attached to. Clearing it looks like tidying up and is actually destroying the only clue: the incident still knows it had a caller, and that id is the thread back to who it was.

It will not judge a table it cannot read. Where the target table is closed to it, those pointers are left alone rather than counted as broken. Inventing findings out of a permission boundary would be worse than missing them.

It stores nothing. No tables ship with it, so there is nothing at rest and an uninstall cannot leave residue.

Where it stops

150 rows per table by default, 500 at most, 6,000 pointers before it stops - and it says when it stopped. Narrow a sweep to a single table to look further into that table.

Screenshots
Requirements
None. No external service, no credentials, no settings, no licensed ServiceNow plugin. It reads the dictionary and a bounded sample of records. The interface and documentation are in English.
VERSION
v1.0.3
RELEASES
1 tested
ServiceNow compatibility
✓ Australia

Built and verified on Australia patch 3. No outbound network access, no credentials, no configuration and no licensed prerequisite. Server-side code is ES5, so it does not depend on ES latest being enabled for the scope. Only Australia is listed under releases because it is the only release it has been tested on.

Scoped application — zero global footprint
Documented, commented source included
Free version updates for life
Instant delivery — download the moment you buy
Inside the download

What you’re importing

Worth a look
Nothing alarming, but a few things here are worth a buyer knowing about.
2 files read inside the archive.
35 records — 22 atf tests, 5 applications, 3 ui pages, 2 script includes, 1 role
Archive read — 2 XML file(s) insideReads or writes user records (2)Touches roles (6)Scoped application
Talks to: cyclonedx.org, nowforge.studio

Read automatically from the update set. It lists what the file contains — it isn't a security guarantee, and nothing was run to produce it.

Before you install

Type
Scoped app
Scope
Scoped application — Installs into its own application scope. Contained, and easy to remove.
Requires
Nothing beyond a standard instance.
Notes from the seller
Built and verified on Australia patch 3. No outbound network access, no credentials, no configuration and no licensed prerequisite. Server-side code is ES5, so it does not depend on ES latest being enabled for the scope. Only Australia is listed under releases because it is the only release it has been tested on.

Refunds

Because this is a digital file you download immediately, sales are final once the file has been downloaded.

If it does not work as described, or you have not downloaded it yet, talk to us — a plugin that does not do what its listing says is our problem, not yours.

Release history

What's shipped

Buy once and every release below — plus everything after it — is yours at no extra cost.

v1.0.3current11d ago
v1.0.2Sep 12, 2026
Reviews

What buyers say

No reviews yet. Only verified buyers can review.

Ratings come from verified purchases only — buy this plugin to leave one.

Ask NowForge a question

Sign in to message NowForge directly. It keeps the conversation attached to your account so their reply can find you — and it stops this being an anonymous pipe into somebody’s inbox.

Report this listing

A person reads every report. Nothing is removed automatically — tell us what’s wrong and we’ll look.

Only used to follow up on this report.
✓