System Error Messages
System & Program Errors List
See also: Finding Specific Errors
Overview
This section lists system errors (numbers 4097–4530). System errors are in the range 4097–8192 and are stored in the DfErr001.dat database table.
Error List
The individual errors are documented below in numeric order (4097–4530).
4097 - Bad attribute value
Cause
An incorrect value was supplied using the Set_Attribute command.
Resolution
Supply an appropriate and legal attribute value.
Example
open Customer
move Customer.File_Number to hFile
move 0 to iField
Structure_Start hFile "DATAFLEX"
create_field hFile at iField
set_attribute DF_FIELD_TYPE of hFile iField to DF_BCD
set_attribute DF_FIELD_LENGTH of hFile iField to 8
set_attribute DF_FIELD_PRECISION of hFile iField to 999
set_attribute DF_FIELD_NAME of hFile iField to "Balance_Due"
Structure_End hFile DF_STRUCTEND_OPT_NONE
The example above supplies 999 to the DF_FIELD_PRECISION attribute, which indicates the new field should have 999 digits behind the decimal point. This is inappropriate and illegal. The sample code below correctly supplies 2 as the number of digits desired behind the decimal point:
open Customer
move Customer.File_Number to hFile
move 0 to iField
Structure_Start hFile "DATAFLEX"
create_field hFile at iField
set_attribute DF_FIELD_TYPE of hFile iField to DF_BCD
set_attribute DF_FIELD_LENGTH of hFile iField to 8
set_attribute DF_FIELD_PRECISION of hFile iField to 2
set_attribute DF_FIELD_NAME of hFile iField to "Balance_Due"
Structure_End hFile DF_STRUCTEND_OPT_NONE
4098 - Bad relationship
Cause
This error occurs at runtime when a relationship is found between two database fields that do not have exactly the same type and length. Overlap fields are the only exception: they may relate to other overlap fields or ASCII fields of the same length.
Resolution
Ensure related fields are of the same type and size. For example, do not relate a Numeric 6.0 field to a Numeric 4.0 field.
Note: Legacy applications sometimes used record-number relationships (relating to RECNUM). If upgrading, ensure the relating field is correctly sized (RECNUM typically requires Numeric 8.0). Avoid record-number relationships when possible.
4099 - Bad parameter
(No detailed information provided.)
4100 - Cannot find field
Cause
Attempt to access a field of a database table that does not exist (for example, via get_FieldNumber or Field_Map).
Resolution
Verify table field names and spelling. Verify the table name or number being used.
4101 - String too long
(No detailed information provided.)
4102 - Too many table structures
(No detailed information provided.)
4103 - Bad driver name
(No detailed information provided.)
4104 - Already started
(No detailed information provided.)
4105 - Bad table number
(No detailed information provided.)
4106 - Lock time-out
Cause
A lock attempt failed within the allotted time. Possible causes:
- Incorrect locking logic in the application (often due to improper alias-table code).
- Another application holds the lock.
Resolution
- See the
lockcommand documentation and guidance for alias tables and DDs. - See the
DF_LOCK_TIMEOUTattribute for information about lock timeouts.
4107 - Too many indexes
Cause
An attempt was made to exceed the database limitation for the number of indexes.
Resolution
Stay within the index limitations of your database. The embedded DataFlex database supports 15 indexes (16 including the predefined index 0 for RECNUM). Other DBMSs have different limits—consult your DBMS documentation.
4108 - Record too long
Cause
An attempt was made to exceed the database record-length limitation.
Resolution
Stay within the record length for your database. The embedded DataFlex database has a 16 KB record limit. Other DBMSs have different limits—consult your DBMS documentation.
4109 - Data dictionary record not saved
(No detailed information provided.)
4110 - Structure not started
Cause
An attempt was made to change the structure of a database table without first executing a valid structure_start statement.
Resolution
Execute a valid Structure_Start statement before attempting to change a database table structure.
Incorrect example
integer iMaxRecs
handle hFile
Open Customer
move Customer.File_Number to hFile
move 1000000 to iMaxRecs
set_Attribute DF_FILE_MAX_RECORDS of hFile to iMaxRecs
Structure_End hFile DF_STRUCTEND_OPT_NONE
Corrected example
integer iMaxRecs
handle hFile
Open Customer
move Customer.File_Number to hFile
move 1000000 to iMaxRecs
Structure_Start hFile "DATAFLEX"
set_Attribute DF_FILE_MAX_RECORDS of hFile to iMaxRecs
Structure_End hFile DF_STRUCTEND_OPT_NONE
4111 - File too large for edit
(No detailed information provided.)
4112 - Temporary file number in use
(No detailed information provided.)
4113 - Attribute value warning
(No detailed information provided.)
4114 - Cannot create .VLD file
(No detailed information provided.)
4115 - Cannot create .DAT file
(No detailed information provided.)
4116 - Read error
(No detailed information provided.)
4117 - Write error
(No detailed information provided.)
4118 - Cannot delete file
(No detailed information provided.)
4119 - File not found
Cause
A file cannot be found.
Resolution
Check the disk folder for the correct file name.
4120 - Cannot rename file
(No detailed information provided.)
4121 - Operation aborted
(No detailed information provided.)
4122 - Bad field type in index
Cause
A field of an incorrect type is being added to an index or is present in an existing index.
Resolution
Consult your DBMS documentation for supported index field types. The embedded DataFlex database supports Numeric, ASCII, Date, and Overlap fields in indexes.
4123 - Dynamic area of table header damaged
Cause
Database table or disk directory is damaged.
Resolution
Generally, reformat the disk and use data recovery techniques. Tables triggering this error are often irrecoverably damaged—restore from a good backup. Verify proper configuration of Read Caching and Opportunistic Locking on your network.
4124 - Static area of table header damaged
Cause
Database table or disk directory is damaged.
Resolution
Generally, reformat the disk and use data recovery techniques. Tables triggering this error are often irrecoverably damaged—restore from a good backup. Verify proper configuration of Read Caching and Opportunistic Locking on your network.
4125 - Argument size too large
Cause
An attempt was made to set the argument size to a value exceeding the maximum argument size.
Resolution
Do not set the argument size to exceed the maximum. See the DataFlex Specifications list for details.
4126 - Argument size too small
Cause
- An attempt was made to set the argument size to less than 256.
- An attempt was made to set the argument size to a value exceeding the maximum argument size.
Resolution
- Never set the argument size to less than 256.
- Do not exceed the maximum argument size. See the DataFlex Specifications list for details.
4127 - Error writing to device
(No detailed information provided.)
4128 - Maximum records less than total records
Cause
An attempt was made to set the table's maximum records attribute to less than the current number of records.
Resolution
Do not set maximum records to less than the current number of records.
4129 - Invalid number for maximum records
Cause
An invalid value was entered for the table's maximum records attribute.
Resolution
For the embedded DataFlex database the value must be a positive integer between 1 and 16,700,000. Consult your DBMS documentation for other limits.
4130 - Error number out of range
(No detailed information provided.)
4131 - Program created with incompatible version
(No detailed information provided.)
4133 - Data entry subsystem not compatible
(No detailed information provided.)
4134 - Embedded database table not compatible
Cause
- Tables created under DataFlex revisions prior to 2.3 require conversion by DFConver.
- Corrupted database table.
Resolution
- Run DFConver on the tables before using them with modern DataFlex. DFConver was supplied with DataFlex 2.3 or is available from Data Access.
- Restore the affected table from backup.
4135 - Number too large to convert to integer
Cause
An attempt was made to convert a number larger than the maximum integer value into an integer variable.
Resolution
Reduce the value to within integer range (-2,147,483,647 to +2,147,483,647), or use a number or real variable instead.
4136 - Real too large to convert to integer
Cause
An attempt was made to convert a real value larger than the maximum integer into an integer variable.
Resolution
Reduce the value to within integer range (-2,147,483,647 to +2,147,483,647), or keep the value in a real variable.
4138 - Maximum number of objects reached
Cause
The maximum number of objects allowed in DataFlex has been reached.
Resolution
Reduce the number of objects in your program.
4139 - Cannot delete - related tables not open
Cause
Child tables related to the table from which the delete is attempted are closed.
Resolution
Open all child tables related to the table before deleting a record.
4140 - Cannot delete - related records exist
Cause
You cannot delete a record that has child records when Cascade_Delete_State is set to False.
Resolution
Cascade_Delete_State is typically set to False to protect from deleting parent records that have related child records. Either enable cascade delete where appropriate or remove related child records first.
4141 - Data set files must support transactions
Cause
One or more tables used by the application have transaction type set to None.
Resolution
Tables in applications using DataDictionaries must have transaction type set to Client Atomic. Server Atomic was for Novell NetWare and is no longer supported.
4142 - Cannot recover from transaction error
(No detailed information provided.)
4143 - Illegal operation during transaction
Cause
An operation not allowed during a transaction was attempted.
Resolution
Operations such as starting another program (runprogram) or exiting (abort, exit_application) are not allowed during a transaction. A transaction is a lock...unlock, reread...unlock, or begin_transaction...end_transaction block.
4144 - Operation not allowed
(No detailed information provided.)
4145 - Fatal internal error
(No detailed information provided.)
4146 - RECNUM not allowed as sequential device
(No detailed information provided.)
4147 - Can't create .HDR file
Cause
- Possible permissions problem.
- Database table or disk directory damage.
Resolution
- Ensure the current user has rights to the target location.
- Reformat the disk and use data recovery techniques. Verify Read Caching and Opportunistic Locking configuration.
4148 - Can't write to .HDR file
Cause
Possible permissions problem.
Resolution
Ensure the current user has rights to the .HDR file location.
4149 - .HDR file is damaged or invalid
Cause
Database table or disk directory is damaged.
Resolution
Reformat and use data recovery techniques. Restore from backup if possible. Verify Read Caching and Opportunistic Locking configuration.
4150 - Attempt to reference invalid item number
(No detailed information provided.)
4151 - Attempt to access an invalid page number
(No detailed information provided.)
4152 - Maximum virtual memory locks exceeded
(No detailed information provided.)
4153 - Attempt to unlock invalid virtual memory
(No detailed information provided.)
4154 - Data_set constraint not for main file
Cause
No parent-file constraint.
4155 - Edit requires reread or find during lock
Cause
Incorrect multi-user programming logic. A reread (of data from disk) of the affected table is required before changing data in an active record buffer when DF_REREAD_REQUIRED is true.
Resolution
Follow proper multi-user coding rules:
- When creating a new record, issue a
lock(or arereadwith no file parameters), then move values andsaverecord, thenunlock. - When editing an existing record,
rereadthe table, modify fields,saverecord, thenunlock. - When deleting an existing record, the affected table must be locked.
- For each
lockorreread, there must be a correspondingunlock.
Proper multi-user coding examples:
Creating a new record:
clear NEWTABLE
lock
move VAR to NEWTABLE.FIELD
saverecord NEWTABLE
unlock
Editing an existing record:
reread TABLE
move VAR to TABLE.FIELD
saverecord TABLE
unlock
Copying data from an existing record in TABLE to a new record in NEWTABLE:
reread TABLE
move TABLE.FIELD to NEWTABLE.FIELD
saverecord NEWTABLE
unlock
Note: saverecord and save behave differently: save attaches related ancestral file information and may overwrite manually moved child-buffer data; saverecord only affects the specified file(s).
4156 - Referenced an invalid system integer
(No detailed information provided.)
4157 - No shell program defined in environment
(No detailed information provided.)
4159 - Error executing child process
(No detailed information provided.)
4160 - Can't run print spooler
(No detailed information provided.)
4161 - Invalid file system
(No detailed information provided.)
4162 - Bad SYSCONF parameter
(No detailed information provided.)
4163 - Spooler command line string too long
(No detailed information provided.)
4164 - Referenced an Invalid System Indicator
(No detailed information provided.)
4165 - Error outputting to spooler device
(No detailed information provided.)
4166 - Error reading from child process's pipe
(No detailed information provided.)
4167 - Unable to open pipe
(No detailed information provided.)
4168 - Invalid object used with RUNPROGRAM PIPE
(No detailed information provided.)
4170 - Compression table is corrupt
(No detailed information provided.)
4171 - Invalid directive in collate.cfg on line
Cause
Usually caused by an outdated or incorrect collate.cfg (from an older DataFlex version).
Resolution
Check for older or duplicate copies of collate.cfg in workspace subfolders and installation folders.
4172 - Redundant value in collate.cfg on line
(No detailed information provided.)
4173 - Can't open collate.cfg
(No detailed information provided.)
4174 - Incomplete sequence in collate.cfg
(No detailed information provided.)
4175 - No printer type specified
(No detailed information provided.)
4176 - Invalid table size
This can be triggered during reindexing if a table returns a last record number higher than MAX_RECORD_COUNT (16,711,679), possibly due to a corrupted header.
4177 - File access violation, file may be in use
(No detailed information provided.)
4179 - Unable to update FILELIST.CFG
(No detailed information provided.)
4180 - Can't read record zero
Cause
- Database table or disk directory damage.
- Operating-system directory structure problems (e.g., power failure causing directory corruption).
Resolution
Reformat and use data recovery techniques. Restore from a good backup if possible. Verify Read Caching and Opportunistic Locking configuration.
4181 - Can't delete index file (.K*)
(No detailed information provided.)
4182 - Can't create index file (.K*)
(No detailed information provided.)
4183 - Can't delete table
(No detailed information provided.)
4184 - Can't delete variable DB table (.VLD)
(No detailed information provided.)
4185 - Can't delete record
(No detailed information provided.)
4200 - Can't close variable DB table (.VLD)
(No detailed information provided.)
4216 - Physical file name not specified
(No detailed information provided.)
4217 - Invalid record length
(No detailed information provided.)
4218 - File must be opened exclusively
(No detailed information provided.)
4220 - Can't write .TAG file
Cause
Possible permissions problem.
Resolution
Ensure the current user has rights to the location where the .TAG file will be created.
4221 - Must copy record to identical structure
Cause
The source and destination tables do not have identical structures.
Resolution
Verify that both table structures are identical before copying records.
4222 - Destination file must be empty
(No detailed information provided.)
4223 - Can't delete header file (.HDR)
Cause
- Possible permissions problem.
- The
.HDRfile may not exist.
Resolution
- Ensure the current user has rights to delete the
.HDRfile. - Ensure the
.HDRfile exists and is available onDFPATH.
4224 - No locks available
(No detailed information provided.)
4229 - DBMS Driver not supported System
(No detailed information provided.)
4235 - Transaction aborted
(No detailed information provided.)
4236 - Can't ABORT while in a transaction
Cause
An abort command was attempted during a transaction.
Resolution
Avoid using abort, runprogram, exit_application, or similar commands during a transaction. A transaction is a lock...unlock, reread...unlock, or begin_transaction...end_transaction block.
4237 - Can't CHAIN while in a transaction
Cause
A chain command was attempted during a transaction.
Resolution
Do not call chain while inside a transaction.
4238 - Can't RUNPROGRAM while in a transaction
Cause
A runprogram command was attempted during a transaction.
Resolution
Do not call runprogram while inside a transaction.
4242 - Can't lock record
(No detailed information provided.)
4243 - Can't unlock record
(No detailed information provided.)
4244 - Can't copy database
(No detailed information provided.)
4251 - Can't lock file
(No detailed information provided.)
4252 - Error in Transaction log
(No detailed information provided.)
4253 - API not initialized
(No detailed information provided.)
4254 - Can't Create File
(No detailed information provided.)
4255 - Can't Load DLL
(No detailed information provided.)
4256 - Restructure ok, check file for error
(No detailed information provided.)
4257 - Can't open filelist
(No detailed information provided.)
4258 - Index Block Zero full
(No detailed information provided.)
4259 - Error sorting: bad data
(No detailed information provided.)
4260 - Error sorting: bad index number
(No detailed information provided.)
4261 - Maximum record length exceeded
Cause
An attempt was made to change the table structure to exceed the database record-length limitation.
Resolution
Stay within the record length of your DBMS. The embedded DataFlex DB has a 16 KB limit. Consult your DBMS documentation.
4262 - Unable to access index file
(No detailed information provided.)
4263 - Header not damaged
(No detailed information provided.)
4264 - Header integrity checking disabled
Cause
Header integrity checking is not enabled for this table.
Resolution
Enable header integrity checking in Database Builder on the Parameters tab.
4265 - Unable to open file
(No detailed information provided.)
4266 - Unable to read header of datafile
(No detailed information provided.)
4267 - Invalid index number
(No detailed information provided.)
4268 - Duplicate field name
(No detailed information provided.)
4269 - Not a valid file definition
(No detailed information provided.)
4270 - Error reading file
(No detailed information provided.)
4271 - Can't open intermediate file
(No detailed information provided.)
4272 - Can't close intermediate file
(No detailed information provided.)
4273 - Intermediate file not opened
(No detailed information provided.)
4274 - Error reading sequential file
(No detailed information provided.)
4275 - Error writing to sequential file
(No detailed information provided.)
4276 - Missing value
(No detailed information provided.)
4277 - Invalid intermediate file keyword
(No detailed information provided.)
4278 - Invalid intermediate file value
(No detailed information provided.)
4279 - Invalid intermediate file sequence
(No detailed information provided.)
4280 - Invalid intermediate file field
(No detailed information provided.)
4281 - Invalid intermediate file index
(No detailed information provided.)
4282 - Cannot logout with open tables
(No detailed information provided.)
4283 - Unable to write .FD file
(No detailed information provided.)
4284 - Max index key length exceeded
(No detailed information provided.)
4285 - Attempt to access unsupported attribute
(No detailed information provided.)
4286 - Illegal attribute value
(No detailed information provided.)
4287 - No index specified
(No detailed information provided.)
4289 - DBMS operations not allowed in callback
(No detailed information provided.)
4290 - Error accessing system table for file
(No detailed information provided.)
4291 - Error updating system table for file
(No detailed information provided.)
4292 - Cannot copy structure on table with data
(No detailed information provided.)
4354 - Dates are unconverted
Cause
There are dates with a 2-digit year in the specified table.
Caution: When viewing data with Database Explorer, you may not see the dates exactly as stored depending on the options you have set.
Resolution
Convert all dates in the specified table to 4-digit years.
4355 - External function not found
Cause
The function specified in an External_Function call is not found in the specified DLL.
Resolution
Check the DLL's documentation for the exact function name (e.g., ShellExecuteA vs ShellExecute). Ensure the DLL name is spelled correctly and is discoverable by Windows (search order: application folder, current folder, system folder, Windows folder, PATH).
Example (incorrect)
External_Function ShellExecute "ShellExecute" Shel32.Dll ;
Handle hwnd ;
String sOperation ;
String sFile ;
String sParameters ;
String sDirectory ;
Integer nShowCmd ;
Returns VOID_TYPE
Corrected example
External_Function ShellExecute "ShellExecuteA" Shell32.Dll ;
Handle hwnd ;
String sOperation ;
String sFile ;
String sParameters ;
String sDirectory ;
Integer nShowCmd ;
Returns VOID_TYPE
4356 - Unable to load DLL
Cause
Windows cannot find the DLL.
Resolution
Ensure the DLL name is spelled correctly and the DLL can be found by Windows (see search order above).
4357 - GUI Subsystem not compatible
(No detailed information provided.)
4358 - Rawfile command error
Cause
A sequential I/O error where a raw file access command (such as direct_input) tries to access a file or folder that does not exist.
Resolution
Check for file existence before accessing it (use File_Exist).
Example
Procedure ReadFromFile
Boolean bExists
String sFileToAccess
move "C:\MyFile.txt" to sFileToAccess
File_Exist sFileToAccess bExists
if (bExists = True) begin
direct_input sFileToAccess
// add code to read from the file here...
close_input
end
End_Procedure // ReadFromFile
4361 - Cannot Find Evaluation DLL
Cause
This copy of DataFlex is registered as an evaluation license, but the evaluation DLL cannot be found. It may also indicate missing files in the DataFlex installation.
Resolution
Register a full license or reinstall DataFlex.
4362 - Evaluation DLL Has Expired
Cause
The evaluation time frame has expired for this evaluation-licensed copy.
Resolution
Register a full DataFlex license.
4365 - Large Integer Overflow
Cause
Overflow detected when using BigInt/UBigInt arithmetic or conversion.
Resolution
Ensure the correct data type is used for large values.
4367 - Function Not Found in Expression
Cause
A function used in an expression was not declared (mistyped or declared later).
Resolution
Check the spelling. Move the function declaration earlier in the code or use Register_Function to declare that the function will be defined later.
4379 - Wrong Number of Arguments
Cause
- Incorrect number of arguments passed to a message.
- Calling-convention mismatch when invoking an external function.
Resolution
- Check message documentation for the required arguments.
- Ensure DLL uses the
stdcallcalling convention for Win32 APIs.
4380 - XML Interface Error
Cause
Procedures that fail when creating XML DOM nodes generate this error (e.g., Send AddElement when the object cannot be created and added).
Resolution
See the message documentation or the cXMLDOMDocument class for details.
4381 - Illegal Datatype Conversion
Cause
- Moving incompatible data into a destination type.
- Using static arrays with
StrSplitToArraywhen the source string contains more elements than the target static array. - Referencing an array instead of an array element.
Examples and resolutions
- Invalid move between incompatible types will trigger this error — use appropriate types.
- Prefer dynamic arrays over static arrays when splitting variable-length data.
- When assigning a value to an array element, reference the element:
String[] names
Move "Casanave" to names[0]
4382 - Data Out of Range
Cause
Data exceeds the limitations of the destination type (e.g., moving a negative value into UInteger).
Example
UInteger uiQty
move -3 to uiQty
Resolution
Use appropriate data types for the values being handled.
4383 - External Class Not Registered
Cause
- A required DLL is missing.
- A required application manifest is missing (for example, to specify a specific version for common controls).
Resolution
- Ensure required DLLs are installed and registered.
- Ensure the program has the required manifest (see Project properties / manifest).
4384 - Illegal External Class
(No detailed information provided.)
4385 - Error Not In Use
(No detailed information provided.)
4386 - Bad registerInterface method declaration
Cause
The RegisterInterface code is incorrect.
Resolution
Double-check code; use the DataFlex Studio "Publish Method" option to generate correct RegisterInterface code.
4387 - Too many arguments in registerInterface
Cause
Too many arguments were passed to RegisterInterface.
Resolution
Double-check code; use DataFlex Studio to generate correct RegisterInterface code.
4388 - Illegal object name definition
(No detailed information provided.)
4389 - Illegal property name definition
Cause
- Property name conflicts with an internal identifier or reserved word.
- Property defined inside a class inside a method.
Resolution
- Rename the property to avoid conflicts.
- Define properties outside of methods.
4390 - Illegal method name definition
Cause
Attempt to redefine an already-defined method or register a global method.
Resolution
Do not register global methods.
4391 - Illegal code placement
Cause
- A property is defined in a class but outside of a constructor method.
- Multi-dimensional array variables defined incorrectly on a single line.
Resolution
- Define properties within the constructor (
Construct_Object). - Define multi-dimensional array variables one per line.
Incorrect:
Integer[][] ints1 ints2
Correct:
Integer[][] ints1
Integer[][] ints2
4393 - Invalid message syntax
Cause
Many different coding errors can trigger this.
Resolution
Search the compiler or help documentation for the specific error text. The error detail (e.g., "TOO MANY PARAMS AFTER 'TO'") identifies the specific cause; consult the Compiler Error Messages for that text.
4394 - Invalid object reference
(No detailed information provided.)
4395 - Obsolete command is unsupported
(No detailed information provided.)
4396 - Invalid argument
(No detailed information provided.)
4397 - Illegal external function definition
(No detailed information provided.)
4398 - Unable to instantiate COM object
Cause
The ActiveX control is not registered.
Resolution
Register the control using regsvr32.
4399 - COM object method invocation error
(No detailed information provided.)
4400 - DfErr_Compile
This is a generic error. See Generic Errors for more information.
4401 - DfErr_Operator
This is a generic error. See Generic Errors for more information.
4402 - DfErr_Program
This is a generic error. See Generic Errors for more information.
4402 - DDO re-entrant operation attempted
This error is reported when using the Data Dictionary Inspector with "Report DD Reentrancy Errors" enabled.
Cause
Many DDO methods are not reentrant (for example, Clear, Clear_All, Request_Save, Request_Delete, Request_Assign, Request_Find, Request_Superfind, and Find_by_Recnum). Sending such messages reentrantly may be ignored by the DDO — the inspector reports them as errors.
Resolution
Avoid sending non-reentrant messages during reentrant states. See Reentrancy of DDO Methods for more information.
4403 - DfErr_Setup
This is a generic error. See Generic Errors for more information.
4404 - Winprint error
A generic error forwarded from the WinPrint viewer or engine. Review the error text for details.
4406 - Timer (dfTimer) error
(No detailed information provided.)
4407 - Flexcom error
(No detailed information provided.)
4408 - Help system error
(No detailed information provided.)
4409 - Ini file error
(No detailed information provided.)
4410 - Windows error
(No detailed information provided.)
4411 - Windows registry error
(No detailed information provided.)
4413 - Windows Menu error
(No detailed information provided.)
4414 - Mapi error
(No detailed information provided.)
4415 - Application/Workspace error
Cause
The workspace file cannot be found.
Resolution
Check the cApplication object code to see which workspace file it attempts to open. If none is specified, it tries to open config.ws. The workspace file (.ws) is typically located in the same folder as the compiled program (.exe).
4416 - Web Object not found in WebApp
WBO name not found — an ASP page refers to a WBO name that cannot be found.
4417 - File Field name not found in Web Object
An ASP page refers to a file.field name that cannot be found.
4418 - DDO Not found in Web Object
No filename specified or the DD could not be found for the passed filename.
4419 - Changed State required by Web Object
The WBO requires changed-state information that either the ASP page does not provide or the browser does not support.
4420 - Bad Data passed to Web Object
Internal error with the CALL mechanism resulting in bad data. This should not occur in normal operation.
4421 - Xml/Http Transfer error
An error occurred during a cXmlHttpTransfer. Check peXmlTransferStatus on the cXmlHttpTransfer instance for details. Common status codes:
xtsOk— No errorxtsHttpRequestFailed— HTTP request failed; no responsextsBadRequest— Bad or missing data sentxtsInvalidContentType— Return content type unexpectedxtsNoData— No data receivedxtsNotXml— Received data is not XML
4422 - Soap/Http Transfer error
An error occurred with the SOAP client request. See peTransferStatus for details. All non-SOAP-fault errors are reported here.
4423 - Soap Fault error
A SOAP fault occurred with the SOAP client request. See peTransferStatus for details.
4424 - Text too large for database field
Cause
Occurs when attempting to save an RTF stream that is too large for the database field (e.g., saving from a cDbRichEdit control).
Resolution
Reduce the RTF text size or increase the database field size. Alternatively, store the RTF data outside the database.
4425 - DataFlex Reports error
Cause
Errors from the cDRReports class use error 4425; specific error details appear in the error text.
Resolution
Refer to DataFlex Reports documentation for details.
4426 - Access Denied
Cause
Generic Access Denied error for the web application framework. Additional details are usually displayed in the error text.
Resolution
Typically caused by insufficient user permissions. See cWebSessionManager for rights management in web applications.
4500 - Missing Debug Information
The precompile debug (.PBG) file is missing (or .DBG is missing when using a precompiled package).
4501 - Incompatible Debug Information
The found .PBG file is not compatible (created with an older compiler or invalid).
4502 - Server Web Service Exception
A private error used to generate SOAP faults on the server; it will never be reported directly.
4503 - Invalid RowId Size
(No detailed information provided.)
4504 - Driver Number Out of Range
(No detailed information provided.)
4505 - Attempt to Reference Invalid Grid Column
Cause
Attempt to reference an invalid grid column (columns not yet created or index out of range).
Resolution
Reference grid columns only after creation and keep indices within the grid's column range.
4506 - Column does not Support Combo Messages
Cause
Attempt to access a column combo message for a column that does not support combos.
Resolution
Define columns to support combo messages via Set Column_Combo_State. Example:
Set Column_Combo_State iColumn to True
4508 - Invalid Use of Non-Main Table
Cause
A DataDictionary Object (DDO) / Data Entry Object (DEO) programming error, typically:
- The DEO has a mismatch between
Serverand its data file/field binding (Entry_Item). TheEntry_Itemshould refer to a field from the Server table or one of its ancestor tables. - Misconfigured
Main_File,Set Server, orEntry_Item.
Resolution
- Correct the
Entry_Item,Set Server, orMain_Filestatements. - Avoid legacy DataSet features (private/obsolete
Add_Parent), which are not supported from DataFlex 11.0 onward.
4509 - Referenced Array Index Out of Bounds
Cause
Specified index is out of bounds.
Resolution
Reference indices within the array bounds.
4510 - Invalid RowId - Cannot Deserialize
Cause
Attempted to deserialize a RowId from an invalid string.
4511 - Specified Dimension not Valid in Array
Cause
Requested a dimension that the array does not have (e.g., asking for the 2nd dimension of a 1D array).
Resolution
Only reference existing array dimensions.
4512 - Illegal Attempt to Resize Static Array
Cause
An attempt was made to dynamically resize a static array.
4513 - Recursive struct definition
Cause
Attempt to create an illegal recursive struct declaration.
Incorrect examples
Struct tMyStruct
tMyStruct MyStruct
End_Struct
or
Struct tMyStruct
integer iVar
tMyStruct MyStruct
End_Struct
Valid recursive definition using arrays:
Struct tMyStruct
integer iVar
tMyStruct[] MyStruct
End_Struct
Resolution
Struct definitions cannot be nested. Correct the code.
4514 - Obsolete or Ambiguous Syntax
Cause
Examples include:
- Left of
[is not an array (use(if it's an indicator). - Left of
.is not a struct or table.
Resolution
- Use
(Found)ifFoundis an indicator instead of[Found]. - Only struct members or table column names may follow a dot.
4515 - Can't Compare this Element Type
Cause
An array function was called with an array of a complex data type (struct, RowId, variant) that the virtual machine cannot compare using internal sorting algorithms.
Example
Using MinArray on an array of structs will trigger this error. Provide a custom comparison function to use MinArray on complex types.
4516 - Bad User Function Return Value
Cause
A developer-supplied comparison function used by array functions (e.g., SortArray, BinarySearchArray) returned an invalid value (must return (EQ), (GT), or (LT)).
Example problem
Returning (GE) or (LE) instead of (EQ), (GT), (LT) will cause error 4516.
Resolution
Ensure comparison functions return only (EQ), (GT), or (LT).
4517 - Operation Overflow
Cause
An operation on a decimal data type resulted in an overflow. Prior to DataFlex 11.1, overflow could result in truncation; decimal operations now report overflow.
Resolution
Use the decimal data type for very large numeric operations to reduce overflow risk. Handle overflow conditions appropriately.
4518 - System Table has more than One Record
Cause
A system table was opened and contains more than one record. This is a bug. The table will still open (non-fatal).
Resolution
Remove extra records from the system table. If immediate correction is not possible, you can suppress the error by instructing the error handler to ignore it:
Use ErrorNum.inc
Send Ignore_Error of Error_Object_Id DFERR_SYSTABLE_TOO_MANY_RECORDS
Do not suppress the error long-term—this masks a potentially serious bug.
4519 - Invalid System Table Record Creation
Cause
Attempting to save a new record that would make a system table have more than one record. Prior to DataFlex 11.1 this was possible (a bug).
Resolution
Fix the application logic: do not create additional records in system tables. Either the table should not be marked as a system table, or avoid saving new records to it.
4520 - Missing end metadata tag set
Cause
End of file found before the end of the meta-data tag set; missing }.
Resolution
Correct the meta-data to include the missing }. See Studio Meta-Data for more information.
4521 - Invalid resource data
Cause
Embedded ActiveX resource data between Embed_ActiveX_Resource / End_Embed_ActiveX_Resource is invalid.
Resolution
Delete the Embed_ActiveX_Resource block and allow the Studio to recreate it (via ActiveX Properties).
4522 - Changes detected in precompiled package
Cause
Changes were detected in a precompiled package while attempting to include it.
Resolution
Recompile the precompiled package.
4523 - The specified DateTime contains an invalid value
Cause
DateTime arithmetic was attempted with invalid values; the result is Null.
Resolution
Ensure valid DateTime values; see the DateTime command documentation.
4524 - The specified TimeSpan contains an invalid value
Cause
TimeSpan arithmetic with invalid values; the result is Null.
Resolution
Ensure valid TimeSpan values; see the TimeSpan command documentation.
4525 - The specified Time contains an invalid value
Cause
Time arithmetic with invalid values; the result is Null.
Resolution
Ensure valid Time values; see the Time command documentation.
4526 - Change in Parent record not allowed
Cause
A Data Dictionary setting disallowed changes to a parent (e.g., pbForeignReadOnly set to True) but code attempted to change it.
Resolution
See pbForeignReadOnly and correct application logic.
4527 - Cannot refind record
Cause
A record that was previously found cannot now be found (e.g., someone else deleted it).
Resolution
This is generally a normal multi-user condition; no action required by the user. Handle the case gracefully in your application.
4528 - Invalid Json String
Cause
A JSON string being parsed has invalid structure.
Resolution
Inspect and correct the JSON-producing code. Use the cJsonObject class helpers for creating and validating JSON.
4529 - Invalid Json Object
Cause
The JSON DOM structure is invalid for cJsonObject operations.
Resolution
Inspect the JSON DOM and cJsonObject structure. Use cJsonObject helpers. Consider setting pbRequireAllMembers to False if optional members may be missing.
4530 - Json Object not Initialized
Cause
The cJsonObject instance does not represent a valid JSON object.
Resolution
Inspect the cJsonObject instance and correct the code creating it. Use cJsonObject helpers to validate and construct JSON objects.