Summary
Discussion on causes and resolution of ICE03 validation errors
Symptoms
-
ICE03 - Error - Invalid identifier; Table: File, Column: File, Key(s): Test.pdf
-
ICE03 - ICE03 - Error - Invalid identifier; Table: MsiFileHash, Column: File_, Key(s): Test.pdf
-
ICE03 Failure ICE Internal Error 1149. API Returned: 1615.
-
ICE03 Failure Error 2228: C:\apps\Test\Product1\Release1\DiskImages\Disk1\Integration Test.msi, _FtrRef, SELECT 'Table', Column' FROM _FtrRef" WHERE 'Table' = 'File' AND 'Column' = 'File'
Cause
Resolution
Table: TypeLib
| LibID | Language | Component_ | Version |
|---|---|---|---|
| {C9FCC3A5-FBF1-11D6-AA40-005056C00001} | 0 | Component1 | 100 |
Table: _Validation
| Table | Column | Nullable | MinValue | MaxValue |
|---|---|---|---|---|
| TypeLib | Version | Y | 0 | 80 |
The value for the table in question must be changed to a value that falls within the Min/Max Value limits. If the value cannot be changed, the Max or Min Value must be changed accordingly in the _Validation table itself via the Direct Editor. See the Additional Information section of this article for information on how to access the _Validation table.
Table: LockPermissions
| LockObject | Table | Domain | User |
|---|---|---|---|
| IniFile1 | IniFile | TestUser |
Table: _Validation
| Table | Column | Set | MinValue | MaxValue |
|---|---|---|---|---|
| LockPermissions | Table | CreateFolder;File;Registry | 10 | 1650 |
The field in question can be manually adjusted via the Direct Editor in the InstallShield IDE to match the Set column in the _Validation table. In the example above, the value of the Table column in the LockPermissions table must be changed to match a value currently in the Set column of the _Validation table. If the _Validation table must be accessed to verify valid values, see the Additional Information section of this article for information on how to access the _Validation table.
Below is a list of data types that may trigger ICE03.
| Data Type | Example | MSI Help Library Topic |
|---|---|---|
| Version | The Version column of the File table | Version |
| UpperCase | NA | UpperCase |
| GUID | The ComponentID column of the Component table | GUID |
| Identifier | Directory column of the Component table | Identifier |
| Language | Language column of the File table | Language and Language Identifiers |
| FileName | FileName column of the File table | FileName |
| Path | NA | Path |
| Paths | Path column of the BindImage table | Paths |
| AnyPath | Path column of the DrLocator table | AnyPath |
| Formatted | Value column of the Registry table | Formatted |
| Template | Message column of the Error table | Template |
| DefaultDir | DefaultDir column of the Directory table | DefaultDir |
| RegPath | Key column of the RegLocator table | RegPath |
| Property | Source column of the Media table | Property |
| Condition | Condition column of the Component table | Condition |
| CustomSource | Source column of the Custom Action table | CustomSource |
| Shortcut | Target column of the Shortcut table | Shortcut |
| Cabinet | Cabinet column of the Media table | Cabinet |
The database and validation tables must be authored to match. Either a row must be deleted from the _Validation table or a row must be added to the _Validation table. A row must be available in the _Validation table for each column available for the table in question. Refer to the table below for an illustration. Note: Not all columns are displayed in the TypeLib or _Validation table below.
A row must be available for each column of the TypeLib Table. As an illustration, there is a row for the Version column in the _Validation table. This is indicated by the Column column of the table. There must be a similar row available for every column of the TypeLib table. The next row's Column column may have the value of Language to indicate that the row is for the Language column of the TypeLib table.
Table: TypeLib
| LibID | Language | Component_ | Version |
|---|---|---|---|
| {C9FCC3A5-FBF1-11D6-AA40-005056C00001} | 0 | Component1 | 100 |
Table: _Validation
| Table | Column | Nullable | MinValue | MaxValue |
|---|---|---|---|---|
| TypeLib | Version | Y | 0 | 80 |
Validation does not recognize the Category string used for this particular column in the _ Validation table.
The data type in the _Validation table?s Category column must be modified to a valid data type. For a list of valid data types, see the MSI Help Library topic "Column Data Types."
The KeyTable column in the _Validation table references a table that does not exist in the database.
The value in the KeyTable column of the _Validation table must be changed to an existing MSI table name.
The value in the MinValue column of the _validation table is greater than the value in the MaxValue column.
The MaxValue column in the_Validation table must be set to a value greater than the MinValue column. See Causes 1 and 2 for sample _Validation tables displaying the MaxValue and MinValue columns.
For a solution to this error, see MSI Help Library topic "Column Definition Format."
Primary key columns cannot be localized.
The Primary key columns in the _Validation table must be set to non-localized values. The primary key of a table is the key that makes the table unique. The primary key can be determined by looking up the table in the MSI Help Library. A Y will be under the Key column indicating which of a table's values serves as the key. For example, the File column is the key of the File table. For more information on localization, see the MSI Help Library topic "Localizing a Windows Installer Package."
Machine the MSI package was built on has the NtfsDisable8dot3NameCreation option enabled
After removing or setting the value to 0, rebuild the project (note that if files or folders were added to the project with
the registry option enabled, the files or folders may need to be removed and re-added to the project). These validation errors can be worked around by manually correcting the table entries in the File and Directory tables. For example, if an ICE03 invalid file name error is reported on the following Filename column value in the File table: This is a long filename.txt . Change the Filename column value to the following: THISIS~1.txt|This is a long filename.txt
Additional Information
- The _Validation table is a self-referential check to ensure data values are within typical ranges. Some setups have files that lie outside this range. In these cases, the _Validation table needs to be modified as necessary.
- When validating the MSI tables and fields causing validation errors are highlighted in red, which helps to distinguish which field needs to be adjusted.
- The _Validation table is not exposed via the Direct Editor. Follow these steps to open the built MSI file in Direct Edit mode to expose the _Validation table:
- Open your project in the InstallShield.
- From the Tools menu, choose Open Release Folder. This opens your Disk1 folder in Windows Explorer.
- There should be an .msi file in the Disk1 folder. If you do not see this file, you need to create an uncompressed build with the Release Wizard. To do this:
- Right-click your release in the Releases view and choose Release Wizard.
- Step through the wizard until you get to the Release Configuration panel and choose to keep files uncompressed.
- Right-click your release in the Releases view and choose Release Wizard.
- Once the .msi file is exposed in the Disk1 folder, close your current project.
- Right-click the .msi file in your Disk1 folder and choose Edit with InstallShield Developer (or Edit with InstallShield DevStudio, or Edit with InstallShield). This opens the .msi file in Direct Edit mode.
- Open your project in the InstallShield.
- The IDE provides a Generate GUID button that automatically generates a New valid GUID for pieces of the installation that require a GUID. For example, in the case of the component, you can go to the Components section of the IDE and select the Component Code Property of the component. A Generate GUID button is available in the lower right corner. Pressing this button generates a New GUID for that component.
Related KB Articles
Q112045 BUG: ICE03 Validation Error When Installing to Directory Named with Multiple Periods
Related Articles
Troubleshoot Windows validation error: NTSTATUS 0x8004100c 35Number of Views Discovery - SSH Validation Error 5Number of Views Web Services Fail to Validate XML - Schema Validation Error: cvc-elt.1 6Number of Views Importing computer inventory data from a spreadsheet/file may fail with a validation error if 'InstanceCloudID' field is m… 4Number of Views Validation Error ICE38 3Number of Views
Hi, I am Reva - Ask me anything.
No new updates
Thanks for the feedback!
Your feedback has been saved.Rate this response:
Add Additional feedback ( Optional )
Are you sure you want to cancel
the case creation?
Are you sure you want to cancel the case creation?
Are you sure you want to close this case
| Products | Region | Phone Numbers |
|---|---|---|
| FlexNet Operations FlexNet Embedded FlexNet Publisher FlexNet Connect FlexNet Code Insight InstallAnywhere InstallShield |
North America * |
+1 630-332-2513 (toll) +1 877-279-2853 (toll-free in North America) |
| Europe * |
+44 1925 944367 (toll) +44 800 047 8642 (toll-free in Europe) |
|
| Japan * | +81 3-4540-5335 (select option 2) | |
| Australia * |
+61 3 9895 2177 +61 1800 560 603 (toll-free in Australia) |
|
|
Usage Intelligence (formerly
Revulytics) Compliance Intelligence |
Please use the Case Portal to submit your support ticket or reach out to your Revenera contact. | |
Case id: 00001065
Activity: Status change: 2 hours ago