# Infor LN Enterprise Server Error Codes and Log Files Reference

> Source: https://netray.co/tools/infor-ln-enterprise-server-error-codes-and-logs-reference
> Publisher: Netray (netray.co), AI and integration engineering for ERP and manufacturing systems.
> Section: Free Tools

## Short answer

Look up bshell and database driver error numbers, what they mean, what to check first and which log file to read.

## Category

infor-ln

## Erp

Baan IV / Infor LN

## Audience

- ERP administrator
- LN developer
- DBA

## Tool

**Kind:** worksheet

**Mode:** reference

**Columns:**

#### Code or file

**Key:** code

**Type:** text

#### Type

**Key:** type

**Type:** select

**Options:**

- Range rule
- Database error
- Log file

#### Meaning

**Key:** meaning

**Type:** text

#### Typical cause

**Key:** cause

**Type:** text

#### First thing to check

**Key:** check

**Type:** text

#### Fix

**Key:** fix

**Type:** text

**Rows:**

#### Table, lock, data dictionary, reference or driver problem

**Code:** 100-899

**Type:** Range rule

**Meaning:** Usually database errors raised by the bshell or a database driver

**Check:** The exact number in the message, then the log of the program that failed

**Fix:** Look up the number below

#### File permissions, missing files, OS resources

**Code:** Outside 100-899

**Type:** Range rule

**Meaning:** System or operating system dependent; numbers 1-32 are standard POSIX errors

**Check:** OS error text for the number on that platform; Event Viewer on Windows

**Fix:** Fix the OS-level cause (permissions, disk, file path)

#### RDBMS error, e.g. 1979 - 1000 = 979 on Oracle

**Code:** Above 1000

**Type:** Range rule

**Meaning:** Native error of the database or OS passed through the driver: subtract 1000

**Check:** Subtract 1000 and look up the result in the RDBMS documentation

**Fix:** Fix the database-side cause

#### Insert with an existing key, or replace import hitting a secondary key

**Code:** 100 EDUPL

**Type:** Database error

**Meaning:** A duplicate value exists

**Check:** Which key the program wrote

**Fix:** Use update instead of insert, or clean the duplicate

#### Another session or job holds the row

**Code:** 107 ELOCKED

**Type:** Database error

**Meaning:** The record is locked

**Check:** Who holds the lock

**Fix:** Wait for or release the lock

#### Read past the last record

**Code:** 110 EENDFILE

**Type:** Database error

**Meaning:** End of file reached

**Check:** Loop logic in the program

**Fix:** Normal in many reads; handle it in code

#### Missing master data or wrong key

**Code:** 111 ENOREC

**Type:** Database error

**Meaning:** No record matches the query

**Check:** The key values used

**Fix:** Create the record or correct the key

#### Exclusive table lock by a utility or job

**Code:** 113 EFLOCKED

**Type:** Database error

**Meaning:** The table is locked

**Check:** Running reorganization, conversion or import jobs

**Fix:** Wait for or remove the lock

#### Environment not started after reboot

**Code:** 123 ENOSHMEM

**Type:** Database error

**Meaning:** No shared memory is initialized

**Check:** Whether rc.start (UNIX) or the shared memory service ran

**Fix:** Initialize shared memory, e.g. via rc.start

#### Shared memory too small for the loaded dictionary

**Code:** 136 ENOSPACE

**Type:** Database error

**Meaning:** No space available in shared memory

**Check:** Shared memory parameters

**Fix:** Reinitialize or enlarge shared memory

#### Two users or jobs updated the same row

**Code:** 201 EROWCHANGED

**Type:** Database error

**Meaning:** The record was changed after a delayed lock

**Check:** Whether the code uses db.retry with a retry point

**Fix:** Retry the transaction; in code use db.retry.point() and db.retry

#### Database-level lock by maintenance

**Code:** 202 EDBLOCKED

**Type:** Database error

**Meaning:** The database is locked

**Check:** Running admin processes

**Fix:** Wait for or remove the lock

#### Interface or import writing an invalid value

**Code:** 205 ENOTINRANGE

**Type:** Database error

**Meaning:** Field value is out of range for its domain

**Check:** The field and its domain definition

**Fix:** Correct the value at the source

#### Bad query in a script or query session

**Code:** 301 ESQLQUERY

**Type:** Database error

**Meaning:** General SQL error, often a syntax problem

**Check:** The query text; 302 ESQLSYNTAX and 303 ESQLREFER give more detail

**Fix:** Correct the query

#### Corrupt index, or RDBMS sort order differs from Enterprise Server

**Code:** 305 ESQLWRONGROW

**Type:** Database error

**Meaning:** An incorrect record was returned

**Check:** Database collation and index health

**Fix:** Rebuild the index or align the sort order

#### Database driver missing or misconfigured

**Code:** 505 ENOSERVER

**Type:** Database error

**Meaning:** No server in tabledef6.2, or the server cannot start

**Check:** $BSE/lib/tabledef6.2 and the driver log

**Fix:** Correct the driver entry or start the driver

#### Table not created in this company

**Code:** 506 ENOTABLE

**Type:** Database error

**Meaning:** The table does not exist

**Check:** Company number and whether the table exists in the database

**Fix:** Create the table or correct the company

#### RDBMS down or not reachable

**Code:** 510 EDBNOTON

**Type:** Database error

**Meaning:** The database is not on

**Check:** Database service status

**Fix:** Start the database

#### Mixed porting set or driver versions

**Code:** 511 EWRONGVERSION

**Type:** Database error

**Meaning:** Client version differs from the server version

**Check:** Versions of bshell and driver binaries

**Fix:** Align the porting set versions

#### Interrupted reconfiguration or dictionary mismatch for the table

**Code:** 512 EDDCORRUPT

**Type:** Database error

**Meaning:** The data dictionary is corrupt

**Check:** Recent conversions or reconfigurations of that table

**Fix:** Repair with bdbpre and bdbpost as the Technical Manual advises, then rerun the dictionary conversion

#### Runtime dictionary missing for the package combination

**Code:** 513 ENODD

**Type:** Database error

**Meaning:** The data dictionary was not found

**Check:** Package combination and dictionary files

**Fix:** Convert to the runtime data dictionary

#### User data or job without a valid company (0-999)

**Code:** 519 ENOCOMPNR

**Type:** Database error

**Meaning:** No or illegal company number

**Check:** The user's default company

**Fix:** Set a valid company number

#### Network break or database restart

**Code:** 522 EBDBDBCONNECTIONLOST

**Type:** Database error

**Meaning:** Connection between driver and database lost

**Check:** Database and network logs at that time

**Fix:** Restore the connection and restart the session

#### Tablespace or file group full

**Code:** 523 E_BDB_FULL

**Type:** Database error

**Meaning:** Required space is not available in the database

**Check:** Database free space

**Fix:** DBA extends or reorganizes space

#### Delete of a master that is still used

**Code:** 605 EREFEXISTS

**Type:** Database error

**Meaning:** Record cannot be deleted while a reference exists

**Check:** Referencing tables in the log message

**Fix:** Remove the references first

#### Data dictionary may be incorrect

**Code:** 607 ENOREFTBL

**Type:** Database error

**Meaning:** The reference table was not found

**Check:** The log file for the table name

**Fix:** Correct the dictionary or create the table

#### n/a

**Code:** $BSE/log

**Type:** Log file

**Meaning:** Directory for program logs

**Check:** Porting set 9.0b and later: <program>.log, or <program>-<sequence>.log with rotation; older sets: log.<program>

**Fix:** Size and rotation via log_size and log_rotation_count in $BSE/lib/defaults/all

#### Failed imports or table creation

**Code:** Log.bdbpost

**Type:** Log file

**Meaning:** Fatal errors of bdbpost, named after the program

**Check:** Last lines for the table and error number

**Fix:** Correct the cause and rerun the import

#### n/a

**Code:** $BSE_TMP/bshell.<pid>

**Type:** Log file

**Meaning:** Output of a running bshell

**Check:** Removed when the bshell exits normally; start it with -keeplog to keep it

**Fix:** Use bshcmd to change debug levels on a running bshell

**Notes:** 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.

## Content

**Intro:** 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.

**Sections:**

#### How to read an error number

**Body:** 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

**Body:** 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.

**Bullets:**

- 201: concurrency, retry in code
- 510: start the database
- 512 and 513: data dictionary, repair and convert

#### Which log to read

**Body:** 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

**Body:** 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.

**Cta:** 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.

**Faq:**

#### What is error 512 in Infor LN?

**Answer:** 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?

**Answer:** 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'?

**Answer:** 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?

**Answer:** 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.

## Search terms

error 512 infor ln, error 201 in infor ln, infor unable to create a session, infor ln error codes, baan error 510, edbnoton, bshell log file, baan database error 100

---
Talk to an engineer: https://netray.co/contact?intent=erp_ai | Machine catalog: https://netray.co/agent/catalog.json
