Infor LN Enterprise Server Error Codes and Log Files Reference
This reference decodes the error numbers that the LN and Baan Enterprise Server bshell and database drivers report, with the usual cause, what to check first and the fix. It also shows which log file to read in $BSE/log and $BSE_TMP.
| Code or file | Type | Meaning | Typical cause | First thing to check | Fix |
|---|---|---|---|---|---|
100-899 | Range rule | Usually database errors raised by the bshell or a database driver | Table, lock, data dictionary, reference or driver problem | The exact number in the message, then the log of the program that failed | Look up the number below |
Outside 100-899 | Range rule | System or operating system dependent; numbers 1-32 are standard POSIX errors | File permissions, missing files, OS resources | OS error text for the number on that platform; Event Viewer on Windows | Fix the OS-level cause (permissions, disk, file path) |
Above 1000 | Range rule | Native error of the database or OS passed through the driver: subtract 1000 | RDBMS error, e.g. 1979 - 1000 = 979 on Oracle | Subtract 1000 and look up the result in the RDBMS documentation | Fix the database-side cause |
100 EDUPL | Database error | A duplicate value exists | Insert with an existing key, or replace import hitting a secondary key | Which key the program wrote | Use update instead of insert, or clean the duplicate |
107 ELOCKED | Database error | The record is locked | Another session or job holds the row | Who holds the lock | Wait for or release the lock |
110 EENDFILE | Database error | End of file reached | Read past the last record | Loop logic in the program | Normal in many reads; handle it in code |
111 ENOREC | Database error | No record matches the query | Missing master data or wrong key | The key values used | Create the record or correct the key |
113 EFLOCKED | Database error | The table is locked | Exclusive table lock by a utility or job | Running reorganization, conversion or import jobs | Wait for or remove the lock |
123 ENOSHMEM | Database error | No shared memory is initialized | Environment not started after reboot | Whether rc.start (UNIX) or the shared memory service ran | Initialize shared memory, e.g. via rc.start |
136 ENOSPACE | Database error | No space available in shared memory | Shared memory too small for the loaded dictionary | Shared memory parameters | Reinitialize or enlarge shared memory |
201 EROWCHANGED | Database error | The record was changed after a delayed lock | Two users or jobs updated the same row | Whether the code uses db.retry with a retry point | Retry the transaction; in code use db.retry.point() and db.retry |
202 EDBLOCKED | Database error | The database is locked | Database-level lock by maintenance | Running admin processes | Wait for or remove the lock |
205 ENOTINRANGE | Database error | Field value is out of range for its domain | Interface or import writing an invalid value | The field and its domain definition | Correct the value at the source |
301 ESQLQUERY | Database error | General SQL error, often a syntax problem | Bad query in a script or query session | The query text; 302 ESQLSYNTAX and 303 ESQLREFER give more detail | Correct the query |
305 ESQLWRONGROW | Database error | An incorrect record was returned | Corrupt index, or RDBMS sort order differs from Enterprise Server | Database collation and index health | Rebuild the index or align the sort order |
505 ENOSERVER | Database error | No server in tabledef6.2, or the server cannot start | Database driver missing or misconfigured | $BSE/lib/tabledef6.2 and the driver log | Correct the driver entry or start the driver |
506 ENOTABLE | Database error | The table does not exist | Table not created in this company | Company number and whether the table exists in the database | Create the table or correct the company |
510 EDBNOTON | Database error | The database is not on | RDBMS down or not reachable | Database service status | Start the database |
511 EWRONGVERSION | Database error | Client version differs from the server version | Mixed porting set or driver versions | Versions of bshell and driver binaries | Align the porting set versions |
512 EDDCORRUPT | Database error | The data dictionary is corrupt | Interrupted reconfiguration or dictionary mismatch for the table | Recent conversions or reconfigurations of that table | Repair with bdbpre and bdbpost as the Technical Manual advises, then rerun the dictionary conversion |
513 ENODD | Database error | The data dictionary was not found | Runtime dictionary missing for the package combination | Package combination and dictionary files | Convert to the runtime data dictionary |
519 ENOCOMPNR | Database error | No or illegal company number | User data or job without a valid company (0-999) | The user's default company | Set a valid company number |
522 EBDBDBCONNECTIONLOST | Database error | Connection between driver and database lost | Network break or database restart | Database and network logs at that time | Restore the connection and restart the session |
523 E_BDB_FULL | Database error | Required space is not available in the database | Tablespace or file group full | Database free space | DBA extends or reorganizes space |
605 EREFEXISTS | Database error | Record cannot be deleted while a reference exists | Delete of a master that is still used | Referencing tables in the log message | Remove the references first |
607 ENOREFTBL | Database error | The reference table was not found | Data dictionary may be incorrect | The log file for the table name | Correct the dictionary or create the table |
$BSE/log | Log file | Directory for program logs | n/a | Porting set 9.0b and later: <program>.log, or <program>-<sequence>.log with rotation; older sets: log.<program> | Size and rotation via log_size and log_rotation_count in $BSE/lib/defaults/all |
Log.bdbpost | Log file | Fatal errors of bdbpost, named after the program | Failed imports or table creation | Last lines for the table and error number | Correct the cause and rerun the import |
$BSE_TMP/bshell.<pid> | Log file | Output of a running bshell | n/a | Removed when the bshell exits normally; start it with -keeplog to keep it | Use bshcmd to change debug levels on a running bshell |
Error numbers and meanings follow the Infor Enterprise Server Technical Manual (error chapter). Driver-specific messages and native database errors appear in the log of the driver program, not only in the bshell log. A message such as 'unable to create a session' is a symptom; find the error number in the log first, then look it up here.
Stuck on an LN error you cannot place?
Send us the error number and the log extract and we will tell you where to look next.
Optional. The tool and every export work without this. No spam.
How to read an error number
Numbers from 100 to 899 are usually database errors raised by the bshell or the driver; the table lists the common ones by name, such as 512 EDDCORRUPT. Other numbers are system or operating system dependent, and only 1 to 32 are standard POSIX values. When a number above 1000 appears, the driver is passing on a native database error: subtract 1000 and look up the result in the RDBMS documentation, so 1979 on Oracle becomes 979. Always note the table and program named in the message, because the same number can have different causes in different tables.
Worked example: error 201 and error 512
Error 201 EROWCHANGED means a record was changed after a delayed lock: two processes updated the same row. In a session the user can simply try again; in a custom program the fix is to use db.retry.point() and db.retry so the transaction restarts. Error 512 EDDCORRUPT means the data dictionary for the table is corrupt, often after an interrupted reconfiguration. Check what changed on that table, repair it with bdbpre and bdbpost as the Technical Manual advises, and regenerate the runtime data dictionary before users retry. Do not let users keep retrying 512, it will not clear on its own.
- 201: concurrency, retry in code
- 510: start the database
- 512 and 513: data dictionary, repair and convert
Which log to read
Program logs are in $BSE/log. Porting set 9.0b and later write <program name>.log, or <program>-<sequence>.log when rotation is enabled, with a default size of 512 KB; older porting sets use log.<program name>. Fatal bdbpost errors go to Log.bdbpost. A running bshell writes its output to $BSE_TMP/bshell.<pid>, which is deleted on a normal exit unless you start the bshell with -keeplog. For driver and native database errors, read the driver's own log and the RDBMS log for the same time. Log size and rotation are set with the log_size and log_rotation_count resources in $BSE/lib/defaults/all, so raise them before you try to catch an intermittent error.
Common mistakes
Restarting services before reading the log loses the evidence for intermittent errors. Treating every error as a database problem misses OS causes such as permissions on $BSE/lib files. Deleting locks without knowing who holds them can leave a half-finished job. And editing files in $BSE/lib by hand, such as tabledef6.2, is discouraged in the manual because many are generated or maintained by Infor tools. Finally, raise the error with the exact number, the program and the time when you log a support case: those three facts let anyone match it to the right log line.
Frequently Asked Questions
What is error 512 in Infor LN?
512 is EDDCORRUPT: the data dictionary is corrupt for the table being opened. The Technical Manual says to repair it with the bdbpre and bdbpost tools. In practice, check whether the table was being reconfigured or converted when it broke, finish or redo that step, and regenerate the runtime data dictionary.
What does error 201 mean in Infor LN?
201 is EROWCHANGED: the record was changed by someone else after a delayed lock. It is a concurrency error, not corruption. Users can retry the action. Programs should set db.retry.point() at the start of the transaction and call db.update or db.delete with db.retry so the bshell retries automatically.
How do I troubleshoot 'unable to create a session'?
That message is a symptom. Find the error number in the bshell output or in $BSE/log for the time of the failure. Common underlying causes are 510 database not on, 505 no server in tabledef6.2, 513 data dictionary not found, 519 invalid company number or a native database error above 1000.
What does an error number above 1000 mean?
It is a native error from the database or operating system passed through the driver. Subtract 1000 to get the original number. The Technical Manual gives the example 1979 on Oracle, which becomes Oracle error 979, 'not a GROUP BY expression', so the fix is in the query or the database.
If your team spends hours reading bshell and driver logs, we can set up a private AI assistant on your own servers that reads them and points to the likely cause.
Related Tools
Baan IV and Infor LN BSE Command-Line Tools Reference
What each program and file under $BSE does, with a usage example and Baan IV versus LN notes: bshell, database tools, compiler, shared memory, IPC, config files and clients.
Developer ToolsInfor LN 4GL Database Insert/Update Transaction Generator
Fill in table, key and fields to get a Baan/LN function that locks the record, writes it with db.retry, commits, and aborts cleanly on error.
Infor LN & BaanInfor LN Performance Tuning Checklist
A 30-point practitioner checklist for diagnosing and fixing Infor LN performance problems across database, application tier, batch jobs, custom code, and monitoring.
Infor LN & BaanInfor LN Support Ticket Template
Write an LN incident report that support can act on the first time: environment, session, steps, error and business impact.
More Infor LN & Baan tools
See all- Infor LN Common Data (tcmcs) General Tables Reference
- Infor LN bdbpre and bdbpost Table Copy Command Generator
- Baan IV to Infor LN Data Copy Downtime Calculator (bdbpre/bdbpost)
- Baan to Infor LN Migration Readiness Assessment
- Baan IV End-of-Life Risk Cost Calculator
- Infor LN Upgrade Cost Estimator
- Infor LN vs SyteLine Selector
- Baan Data Migration Effort Calculator
- Infor LN Multi-Site Rollout Planner
Keep exploring
Free tools
- Baan IV and Infor LN BSE Command-Line Tools ReferenceWhat each program and file under $BSE does, with a usage example and Baan IV versus LN notes: bshell, database tools, compiler, shared memory, IPC, config files and clients.
- Baan to Infor LN Migration Readiness AssessmentScore your organization's readiness to migrate from Baan IV or Baan V to Infor LN across ten dimensions, from data quality to executive sponsorship.
- Infor LN and Baan ERP Table List by PackageFilterable list of commonly used Infor LN and Baan tables by package, with the naming convention, key fields and where a Baan IV table differs from LN.
ERP fixes and how-tos
- Baan IV to Infor LN migration checklistPlan a Baan IV to Infor LN move as a re-implementation, not a patch: inventory customizations, convert data, rebuild logic, and run a real parallel test.
- Infor LN error 205: how to diagnose and fix itDiagnose Infor LN error 205: common triggers, the log and bshell trace to check, how to find the table and record involved, and a safe fix sequence.
- Private AI Layer for Baan On-Prem: Reference ArchitectureReference architecture to add a private AI assistant to Baan on-prem: data access paths, retrieval, permissions, sizing and rollout, no cloud needed.
Guides
- Baan ERP End of Life: What Are Your Real Options?Baan IV and Baan V are end-of-life. Explore your migration options to Infor LN, CloudSuite, or alternative ERPs with realistic timelines and costs.
- BAAN IV End of Life: Migration Options and Upgrade PathsBaan IV end-of-life migration options: upgrade to Infor LN (12-18 months), Baan to SAP S/4HANA (18-30 months), cloud ERP, or staged modernization.
- Baan ERP: History, Versions, and Modern Migration PathsBaan ERP history from Triton to Baan IV, Baan V, and Infor LN, plus practical migration paths for manufacturers still running Baan today. Get a proven roadmap.
Integrations
- How to build an MCP server for Baan IV and Baan VHow to build a Model Context Protocol server for Baan IV or Baan V: which read-only tools to expose, database or AFS access, auth, transports and audit.
- How to add AI agents to Baan IV and Baan VHow to add AI agents to Baan IV or Baan V: tool layer over read-only database access and AFS, human approval on writes, and an on-prem model. A practical guide.