How to Fix the NetSuite PDF Logo Sourcing Error
Recent NetSuite changes have created logo sourcing issues and formatting changes on PDFs. Here's how to resolve the logo sourcing issue on NetSuite PDFs.
Read the Article

If NetSuite recently greeted you with a yellow “Update Needed: Update Scripts to SuiteScript 2.1” banner, you did not break anything today.
You did, however, receive a deadline.
NetSuite says custom scripts using SuiteScript 1.0, 2.0, or 2.x will stop working in the 2028.2 release. Any NetSuite scripts your business still needs must be moved to SuiteScript 2.1 before then.
In plain English, what needs to be done (in 5 steps):
Closing the banner takes one click, but closing the risk takes a little more doing.
There are three ways we suggest to go about this:
You can use Sonar (our free NetSuite embedded AI assistant) to speed up the audit before Anchor Group completes the migrations,
OR
SuiteScript 2.1 is NetSuite’s current scripting version. On the server side, it uses the Graal runtime engine and supports newer ECMAScript features than SuiteScript 2.0.
What makes this important is because the versions named in the warning are not all starting from the same place:
In other words, this is not one giant migration, but rather a collection of scripts with different owners, dependencies, business impact, and levels of effort.
For some clean SuiteScript 2.0 scripts, changing the JSDoc annotation to @NApiVersion 2.1 may be part of the solution but it is not the overall plan.
Oracle documents several behavioral differences between SuiteScript 2.0 and 2.1. For example:
SuiteScript 1.0 requires an even more deliberate approach: Oracle’s conversion guidance calls for rebuilding the proper 2.1 script structure, adding the appropriate JSDoc and entry points, and mapping individual 1.0 calls to their 2.1 equivalents. Some 1.0 APIs do not have a direct one-to-one replacement.
A script can upload successfully and still produce the wrong outcome, which is why conversion and regression testing are needed in the same project plan.
Before anyone edits code, answer three questions:
NetSuite recommends reviewing Customization > Scripting > Script Deployments and using the deployment list as a testing checklist. SuiteScript Analysis can add useful execution and performance context, but make sure you don’t treat usage data alone as a complete inventory. (A rarely triggered year-end script can still be a very important script.)
Once the list is complete, place each item into one of four buckets:
Congratulations! You now have a migration plan instead of a yellow banner and a vague sense of unease. Progress.
This route can work well when your internal team has NetSuite scripting experience, access to a current sandbox, enough time for regression testing, and a reliable understanding of the business processes behind the code.
Start with the full deployment list. Identify active and inactive deployments, confirm the API version in the source file, and separate custom scripts from locked or vendor-managed scripts.
Important: Do not delete an unfamiliar script just because it has not run lately. First determine whether it supports a monthly, quarterly, annual, exception-based, or manually triggered process.
Look for custom modules, shared libraries, scheduled handoffs, RESTlet consumers, workflows, saved searches, custom records, and external integrations.
One library update can affect several scripts at once, which is either wonderfully efficient or impressively inconvenient, depending on whether you traced the dependencies first.
NetSuite provides account-level preferences that let you run 2.0 and 2.x server scripts as SuiteScript 2.1 without first editing every file. In a sandbox, go to:
Setup > Company > Preferences > General Preferences
From there, you can set Execute SuiteScript 2.x Server Scripts As to 2.1 and enable Execute SuiteScript 2.0 Server Scripts as SuiteScript 2.1.
Use these settings to uncover runtime differences, then update and validate each affected script. When a script is ready to run explicitly as 2.1, update its JSDoc annotation to:
/**
* @NApiVersion 2.1
*/Use the account-level settings only in an appropriate test environment with a defined test plan. They can affect many server scripts at once.
For each 1.0 script:
Test with the roles, records, data volumes, and triggering conditions the script sees in real life. Depending on the script, that may include:
Record the expected and actual result for every deployment. (“No error appeared” is nice, but it is not quite the same as “the script did the right thing.”)
Move lower-risk scripts first, then progress toward business-critical scripts. Keep a rollback plan, document the production change, and monitor execution logs and downstream processes after deployment.
Best fit: For teams with available SuiteScript developers, strong documentation, and time to own discovery, conversion, QA, deployment, and support.
If you want a faster picture of the work without manually opening every record, Sonar (our free embedded AI assistant for NetSuite) can help you complete the first pass inside NetSuite.
Sonar operates under the permissions of the user running it, so use a role with appropriate access to the script and deployment information you want included. Ask it to audit and organize the environment—not to change or deploy anything.
Audit this NetSuite account for scripts and deployments using SuiteScript 1.0, 2.0, or 2.x. Do not modify any files, records, preferences, or deployments.
Return a table with the following information for each affected script:
Separate active deployments from inactive scripts. Flag any script whose owner, purpose, source code, or dependencies cannot be confirmed. End with a summary showing the total affected scripts by version, priority, ownership, and estimated complexity. Cite the NetSuite record or file used for each finding.
This audit gives us at Anchor Group a much better starting point of a prioritized backlog with script IDs, ownership clues, dependencies, risk, and proposed test coverage.
Our NetSuite developers can then validate the findings, migrate each editable script, test it in your sandbox, work through user acceptance testing with your team, and deploy the approved updates. Vendor-owned or locked scripts can be separated into a follow-up list so you know exactly which providers need a phone call—and what to ask them.
In other words: Sonar gets the flashlight on the problem. Anchor Group handles the wiring. You can get Sonar for free, here.
Best fit: For NetSuite admins who want fast visibility and a lower-lift discovery process but want experienced developers to own the actual code migration.
Sometimes the honest answer is, “We do not know what half these scripts do, the original developer is gone, and month-end is not going to pause while we find out.” (Fair enough.)
Through out NetSuite development services, Anchor Group NetSuite development consultants can manage the project from the first inventory through production deployment, including:
This route is especially useful for heavily customized accounts, inherited NetSuite environments, undocumented scripts, complex integrations, or internal teams with a full workload already.
You keep the business moving. We will sort out what the yellow banner is trying to tell you.
Best fit: For teams that want one accountable partner to discover, plan, migrate, test, and deploy the work.
There is no prize for choosing any of these options. Remember that the right path for your organization is the one that gets every required script migrated and properly tested without turning your operations upside-down.
Changing 2.0 or 2.x to 2.1 tells NetSuite which runtime to use. It does not prove that the script behaves correctly on that runtime.
Test permissions, missing data, unusual transactions, high-volume runs, errors, retries, integrations, and the business outcome—not just whether the script executed.
Identify the owner first. A SuiteApp or managed-bundle provider may need to supply the compatible version, and an update could overwrite an unsupported local workaround.
An inactive script should be deliberately retired, archived, migrated, or assigned for later review. “Probably unused” is not much of a lifecycle policy.
The code conversion is only part of the effort. Inventory, process research, vendor coordination, sandbox scheduling, user acceptance testing, and production change windows all need room on the calendar too.
You do not need to migrate every script this week. You do need to know what is in the account.
Start by inventorying the scripts behind the warning. Separate what can be retired from what must be migrated, identify vendor-owned code, and rank the remaining scripts by business impact. Then choose the route that matches your team’s time and technical capacity (if in doubt, see our migration path matrix, above).
The 2028.2 release is not tomorrow. That is precisely why now is a good time to handle this carefully instead of handling it expensively.
Not sure whether that banner represents five straightforward scripts or 500 interconnected ones? Start with a Sonar-assisted audit, or let Anchor Group take the full inventory and migration off your plate.
We will help you find the affected scripts, prioritize the real risks, migrate the code, and test the processes your business depends on before NetSuite turns a warning into a work stoppage.
Talk to a NetSuite Developer >
You can close the banner, but that does not resolve the underlying compatibility issue. Scripts using SuiteScript 1.0, 2.0, or 2.x still need to be evaluated and either retired, replaced, or migrated before NetSuite 2028.2.
Not necessarily. SuiteScript 2.0 and 2.1 use largely similar APIs, so some scripts may need limited code changes. However, 2.1 uses a different runtime engine and has documented behavioral differences, so every required script should be tested before its version is changed and deployed.
No. SuiteScript 1.0 uses a different script structure and API model. A proper conversion may require new entry points, SuiteScript 2.1 modules, replacement logic for APIs without direct equivalents, and regression testing of the entire business process.
It depends on the number of scripts, their versions and complexity, shared dependencies, documentation quality, business criticality, vendor ownership, and the amount of regression testing required. A short audit is the most reliable way to estimate the work.
First determine whether the script is locked or managed by the provider. Contact the vendor for its SuiteScript 2.1 compatibility plan and upgrade path. Keep vendor-owned scripts visible in your inventory until the compatible update has been installed and tested.
Editorial source notes:
Editorial note: The 2028.2 deadline is taken from the current in-account NetSuite warning supplied with this draft. Before publication, confirm whether the linked authenticated NetSuite help topic provides a public URL or SuiteAnswers ID you want to cite.
Related Articles
Tagged with Troubleshooting