Skip to content

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:

  1. Incorrect locking logic in the application (often due to improper alias-table code).
  2. Another application holds the lock.

Resolution

  1. See the lock command documentation and guidance for alias tables and DDs.
  2. See the DF_LOCK_TIMEOUT attribute 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

  1. An attempt was made to set the argument size to less than 256.
  2. An attempt was made to set the argument size to a value exceeding the maximum argument size.

Resolution

  1. Never set the argument size to less than 256.
  2. 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

  1. Tables created under DataFlex revisions prior to 2.3 require conversion by DFConver.
  2. Corrupted database table.

Resolution

  1. Run DFConver on the tables before using them with modern DataFlex. DFConver was supplied with DataFlex 2.3 or is available from Data Access.
  2. 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.

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.

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

  1. Possible permissions problem.
  2. Database table or disk directory damage.

Resolution

  1. Ensure the current user has rights to the target location.
  2. 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 a reread with no file parameters), then move values and saverecord, then unlock.
  • When editing an existing record, reread the table, modify fields, saverecord, then unlock.
  • When deleting an existing record, the affected table must be locked.
  • For each lock or reread, there must be a corresponding unlock.

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

  1. Database table or disk directory damage.
  2. 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

  1. Possible permissions problem.
  2. The .HDR file may not exist.

Resolution

  1. Ensure the current user has rights to delete the .HDR file.
  2. Ensure the .HDR file exists and is available on DFPATH.

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

  1. Incorrect number of arguments passed to a message.
  2. Calling-convention mismatch when invoking an external function.

Resolution

  1. Check message documentation for the required arguments.
  2. Ensure DLL uses the stdcall calling 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

  1. Moving incompatible data into a destination type.
  2. Using static arrays with StrSplitToArray when the source string contains more elements than the target static array.
  3. 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

  1. A required DLL is missing.
  2. A required application manifest is missing (for example, to specify a specific version for common controls).

Resolution

  1. Ensure required DLLs are installed and registered.
  2. 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

  1. Property name conflicts with an internal identifier or reserved word.
  2. Property defined inside a class inside a method.

Resolution

  1. Rename the property to avoid conflicts.
  2. 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

  1. A property is defined in a class but outside of a constructor method.
  2. Multi-dimensional array variables defined incorrectly on a single line.

Resolution

  1. Define properties within the constructor (Construct_Object).
  2. 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 error
  • xtsHttpRequestFailed — HTTP request failed; no response
  • xtsBadRequest — Bad or missing data sent
  • xtsInvalidContentType — Return content type unexpected
  • xtsNoData — No data received
  • xtsNotXml — 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:

  1. The DEO has a mismatch between Server and its data file/field binding (Entry_Item). The Entry_Item should refer to a field from the Server table or one of its ancestor tables.
  2. Misconfigured Main_File, Set Server, or Entry_Item.

Resolution

  1. Correct the Entry_Item, Set Server, or Main_File statements.
  2. 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) if Found is 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.