Skip to main content
Answer

Error "Invalid object name 'TCVersionNumber'" When Publishing Customization Projects

  • June 9, 2025
  • 2 replies
  • 35 views

Hi Acumatica Support,

I’ve set up a local Acumatica website instance and ensured a lockout before creating and exporting a snapshot from the client portal. I placed the snapshot data in the database folder and successfully deployed the instance.

However, when attempting to publish all the customization projects, the process fails during the plugin execution phase with the following error:
Microsoft.Data.SqlClient.SqlException (0x80131904): Invalid object name 'TCVersionNumber'

From the logs, it appears that the SQL script related to TCVersionNumber is being skipped as if it were already applied. However, I’ve confirmed directly in SQL Server that the TCVersionNumber table (or view) does not exist in the database.

To help troubleshoot, I’ve attached the full publishing logs that capture the error and the skipped SQL object.

Could you please advise:

How the specific table doesn’t exist, when I have performed a safe, full snapshot?

Why the SQL object might be skipped even though it doesn't exist?

How I can force Acumatica to reapply or recreate the missing SQL scripts?

Any recommended steps for ensuring all necessary database objects are deployed correctly when restoring a client snapshot?

Thank you!

Best answer by Django

You’ll want to click the Publish To Multiple Tenants button and then check the “Execute All Database Scripts (Including Previously Executed)” checkbox. That should help.

Importing a snapshot doesn’t create custom fields that aren’t within the database you’re importing into. It’s not like doing a SQL backup/restore of a database. It’s a table/row import process and if the fields don’t exist in the target database at the time of the snapshot import, those field values will be ignored.

2 replies

Forum|alt.badge.img+7
  • Captain II
  • Answer
  • June 9, 2025

You’ll want to click the Publish To Multiple Tenants button and then check the “Execute All Database Scripts (Including Previously Executed)” checkbox. That should help.

Importing a snapshot doesn’t create custom fields that aren’t within the database you’re importing into. It’s not like doing a SQL backup/restore of a database. It’s a table/row import process and if the fields don’t exist in the target database at the time of the snapshot import, those field values will be ignored.


Thank you, it worked.