Oracle EBS Forms FRM Error Codes Reference (FRM-92101, FRM-40735 and more)
This reference lists the FRM errors that Oracle E-Business Suite 12.1 and 12.2 users report most, with the message text, the usual EBS cause and where to look first. FRM-40xxx errors are about data and form logic, FRM-92xxx errors are about the Java client, network and Forms server.
| Code | Message text | Typical cause in EBS | First checks | Where to look |
|---|---|---|---|---|
FRM-40735 | <trigger> trigger raised unhandled exception <exception>. | PL/SQL in a form trigger or a CUSTOM.pll or personalization call raised an exception it did not handle, often ORA-01403, ORA-01422 or ORA-06502 | Note the trigger name and the ORA- code in the message; reproduce with the same data | Help > Diagnostics > Display Database Error; Forms trace; the package called by the trigger |
FRM-40505 | ORACLE error: unable to perform query. | Query on a block failed: invalid column in a custom WHERE clause, missing grant or synonym, invalid view, or MOAC context problem | Display Database Error for the ORA- code (ORA-00904, ORA-00942 are common) | Help > Diagnostics > Display Database Error; block query in Help > Diagnostics > Examine (LAST_QUERY) |
FRM-40508 | ORACLE error: unable to INSERT record. | Insert failed: unique constraint, NOT NULL column, trigger on the base table, or invalid DFF value | Display Database Error for ORA-00001, ORA-01400 or a custom trigger error | Base table triggers; recent custom database triggers |
FRM-40509 | ORACLE error: unable to UPDATE record. | Update failed: database trigger error, constraint, or a value too large for the column | Display Database Error; check recently added custom triggers | Base table and its triggers |
FRM-40510 | ORACLE error: unable to DELETE record. | Delete failed: child records (ORA-02292) or a trigger raising an error | Display Database Error for ORA-02292 and the constraint name | DBA_CONSTRAINTS for the named constraint |
FRM-40501 | ORACLE error: unable to reserve record for update or delete. | Row lock held by another session or a hung session (ORA-00054) | Find the blocking session | V$LOCKED_OBJECT, V$SESSION; ask the user holding the record to save or exit |
FRM-40654 | Record has been updated by another user. Re-query to see change. | Row changed in the database since the form queried it: another user, a concurrent program, or an API; also trailing spaces or a trigger that changes values | Re-query the record and redo the change | Who updated it: LAST_UPDATED_BY and LAST_UPDATE_DATE on the row |
FRM-40200 | Field is protected against update. | Item is not updatable in this status or through a personalization or form logic | Check document status (approved, closed) and any personalization on UPDATE_ALLOWED | Help > Diagnostics > Custom Code > Off to rule out personalizations |
FRM-40202 | Field must be entered. | Required item left blank, including fields made REQUIRED by personalization or a required DFF segment | Find the field with the cursor; check DFF segment setup | Personalizations on the form; descriptive flexfield segments |
FRM-40212 | Invalid value for field <item>. | Value does not match the item's data type or format mask, for example a date in the wrong format | Check the user's date and number format preferences | Profile ICX: Date format mask; user preferences |
FRM-40209 | Field must be of form <format mask>. | Entered value does not match the format mask of the item | Re-enter in the displayed mask | Item format mask in the form; user preferences |
FRM-40831 | Truncation occurred: value too long for field <item>. | Value from the database or a default is longer than the item width | Compare column length with the item maximum length, common after a custom column widening | Custom views and DFF value sets with long values |
FRM-40350 | Query caused no records to be retrieved. | Query criteria match nothing, or MOAC or data security hides the rows | Check operating unit, responsibility and criteria; try a broader query | MO: Security Profile; the block's DEFAULT_WHERE |
FRM-40352 | Last record of query retrieved. | Informational: the cursor is at the last fetched record | None | Not an error |
FRM-40100 | At first record. | Informational: previous record pressed on the first record | None | Not an error |
FRM-40102 | Record must be entered or deleted first. | Navigating down from a new, empty record | Enter data or clear the record | Not a defect |
FRM-40401 | No changes to save. | Save pressed with no pending changes | None | If expected changes did not save, check whether a personalization cleared them |
FRM-40600 | Record has already been inserted. | Duplicate of a primary key value already entered in the same block | Change the key value or query the existing record | Block primary key settings |
FRM-40700 | No such trigger: <trigger>. | A personalization, CUSTOM.pll or menu called a trigger the form does not define, for example a SPECIAL entry | Check the event name in the personalization action | FND_FORM_CUSTOM_ACTIONS BUILTIN_ARGUMENTS for EXECUTE_TRIGGER or DO_KEY |
FRM-40105 | Unable to resolve reference to item <item>. | Code or a personalization references an item name that does not exist, often after a patch renamed it | Compare the name with Help > Diagnostics > Examine | Personalization TARGET_OBJECT and CONDITION; CUSTOM.pll |
FRM-40815 | Variable GLOBAL.<name> does not exist. | Code reads a global that was never set in this session | Find the code that should set it; use DEFAULT_VALUE before reading | CUSTOM.pll, personalization conditions using :GLOBAL |
FRM-41830 | List of Values contains no entries. | LOV record group returned no rows: setup missing, MOAC or responsibility filter, or a changed record group query | Check the underlying setup for the operating unit and date | Personalizations using Create Record Group from Query |
FRM-40010 | Cannot read form <form>. | The .fmx is missing, not compiled, or not on FORMS_PATH, typically a custom form | Check the file exists and recompile with frmcmp_batch | .fmx in $<PROD>_TOP/forms/US or $XX_TOP/forms/US for custom forms (.fmb source in $AU_TOP/forms/US); FORMS_PATH in default.env |
FRM-92050 | Failed to connect to the Server: <url>. | Client cannot reach the Forms servlet or listener: wrong host, proxy, firewall or the Forms service is down | Check the forms URL from the client, proxy settings and that the forms server is running | Apache and Forms server status; in 12.2 the forms_server1 managed server |
FRM-92091 | Unexpected fatal error in client-side Java code. | Client Java problem: JRE version, Java cache, or a security setting blocking the applet | Clear the Java cache, check the certified JRE, enable the Java console | Java console output on the client |
FRM-92095 | Oracle JInitiator version too low. Please install version <n> or higher. | Browser is using a Java client that the Forms server rejects, often an old configuration or unsupported plug-in | Check the certified Java client for your EBS release and the client JRE | Java console; EBS client certification notes |
FRM-92100 | Your connection to the Server was interrupted. | Forms session lost: network drop, timeout, or the server process died | Check the time of the error against server logs and network events | Forms server logs; idle and session timeout settings |
FRM-92101 | There was a failure in the Forms Server during startup. | Forms runtime could not start: environment file error, bad FORMS_PATH, missing libraries, or a misconfigured context after cloning | Check that the forms server and default.env match the context file; rerun AutoConfig if needed | Forms and web server logs; in 12.2 forms_server1 logs under the EBS WebLogic domain |
FRM-92102 | A network error has occurred. The Forms Client has attempted to reconnect to the Server <n> time(s) without success. | Repeated network failures between client and Forms server, firewall idle timeout, or load balancer settings | Check network stability, load balancer persistence and timeouts | Network and load balancer logs; Forms server logs |
Message texts follow Oracle Forms runtime messages; angle brackets mark values the runtime fills in. FRM-40xxx and FRM-41xxx come from the form logic and data; FRM-92xxx come from the Java client and the Forms server.
Recurring FRM errors review
Send us the FRM errors your help desk sees most and the matching database errors, and we will return likely causes and fixes for your release.
Optional. The tool and every export work without this. No spam.
First, get the underlying ORA- error
Errors such as FRM-40505, FRM-40508, FRM-40509 and FRM-40510 only say that a database call failed. The real cause is the ORA- error behind it. In EBS use Help > Diagnostics > Display Database Error right after the message, while still in the form. That shows the last database error, for example ORA-00904 invalid identifier from a bad custom WHERE clause or ORA-00001 from a unique index. Help > Diagnostics > Examine shows item values and system variables such as LAST_QUERY. Diagnostics access is controlled by the profiles Hide Diagnostics menu entry and Utilities:Diagnostics. To rule out personalizations and CUSTOM.pll quickly, use Help > Diagnostics > Custom Code > Off and repeat the action.
What FORM_TRIGGER_FAILURE means
FORM_TRIGGER_FAILURE is the Oracle Forms exception that stops the current trigger and, in validation triggers, stops the user from leaving the record or saving. Code raises it on purpose after showing a message, for example FND_MESSAGE.ERROR followed by RAISE FORM_TRIGGER_FAILURE, and a Forms Personalization can do the same with the RAISE FORM_TRIGGER_FAILURE builtin. If a trigger raises any other exception and does not handle it, the user sees FRM-40735 with the trigger name and the exception, which is a coding defect to fix, not a validation.
FRM-92xxx: network, Java and server causes
FRM-92050, FRM-92100, FRM-92101 and FRM-92102 point at the path between the client and the Forms server. FRM-92101 at startup usually means the Forms runtime could not start with its environment: wrong FORMS_PATH or default.env values, missing files after a clone, or AutoConfig not run. FRM-92102 and FRM-92100 after a period of use usually mean the connection was cut, often by a firewall or load balancer idle timeout. FRM-92091 and FRM-92095 are client Java problems. In 12.2 the Forms runtime runs in the forms_server1 managed server, so check its logs under the EBS WebLogic domain and confirm the managed server is running on the run file system after an adop cutover.
Worked example: FRM-40735 with ORA-01403
A user saves a sales order line and gets 'FRM-40735: WHEN-VALIDATE-RECORD trigger raised unhandled exception ORA-01403'. ORA-01403 is no data found: a SELECT INTO returned no rows. Check what runs in WHEN-VALIDATE-RECORD for that block: standard code is rarely the culprit, so look first at CUSTOM.pll, personalizations with Execute a Procedure or FORMS_DDL, and custom database packages they call. A typical cause is a lookup against a custom table without a row for the new operating unit or item. Fix the code to handle NO_DATA_FOUND with a proper FND_MESSAGE and RAISE FORM_TRIGGER_FAILURE, or add the missing setup row.
Frequently Asked Questions
What causes FRM-92101 in Oracle EBS R12?
FRM-92101 means the Forms server failed while starting the runtime for the session. In EBS it is usually configuration: environment file or FORMS_PATH problems, files missing after a clone, or a context not applied by AutoConfig. In 12.2 check the forms_server1 managed server logs. Ask whether all users get it or only one, which separates server from client causes.
What does FRM-40735 mean?
A form trigger raised a PL/SQL exception that it did not handle. The message names the trigger, for example WHEN-VALIDATE-RECORD or PRE-INSERT, and the exception, often ORA-01403 or ORA-06502. Look at code that runs in that trigger, especially CUSTOM.pll, personalizations and custom packages.
How do I see the real error behind FRM-40505?
Right after the message, use Help > Diagnostics > Display Database Error. It shows the ORA- error that made the query fail. Common ones are ORA-00904 invalid identifier from a custom WHERE clause and ORA-00942 from a missing grant or synonym on a custom object.
How do I fix FRM-40654 Record has been updated by another user?
Re-query the record and make the change again. If it happens repeatedly on the same record, something else updates the row between query and save: a concurrent program, a workflow, an API, or a database trigger that modifies the row on update. Check LAST_UPDATED_BY and LAST_UPDATE_DATE on the row to find it.
If you want support analysts to paste an FRM error and get the likely cause from your own logs and setup, on a model running on your servers, we can build that.
Related Tools
Oracle EBS Forms Personalization Tables and Trigger Events Reference
The tables behind Forms Personalization, the trigger events and action types you can use, every common builtin, and the FNDLOAD commands to move rules between instances.
OracleOracle EBS Concurrent Request Phase and Status Reference
Look up every common phase and status combination for a concurrent request, with what it means and the first thing to check.
OracleOracle EBS Profile Options Reference
A searchable lookup of the profile options EBS administrators change most: sign-on security, concurrent processing, multi-org, logging and session settings.
OracleOracle EBS Multi-Org Structure Tables and MO_GLOBAL Reference
Searchable map of the R12 org hierarchy: GL_LEDGERS, XLE legal entities, HR_OPERATING_UNITS, ORG_ORGANIZATION_DEFINITIONS, MOAC profiles and the MO_GLOBAL calls that make secured synonyms return rows.
More Developer Tools tools
See all- Oracle EBS Onhand Quantity SQL Generator
- Oracle EBS BOM Explosion SQL Generator
- Oracle EBS Pending Transactions SQL Generator for Period Close
- Oracle EBS Public PL/SQL API Reference (OM, INV, PO, AP, AR, TCA, FND)
- Oracle EBS XML Publisher RTF Template Syntax Reference
- Oracle EBS OE_ORDER_PUB.PROCESS_ORDER Script Generator
- Oracle EBS FND_REQUEST.SUBMIT_REQUEST Code Generator
- Oracle EBS PL/SQL Concurrent Program Generator (Package plus FND_PROGRAM Registration)
- Oracle EBS Concurrent Program Parameters and Responsibility SQL Generator
Keep exploring
Free tools
- Oracle EBS GL_INTERFACE Journal Import Error Codes ReferenceDecode every common Journal Import Execution Report error code, see which GL_INTERFACE columns cause it and how to fix it, for EBS R12.
- Oracle EBS Cost Management Tables ReferenceA lookup of the Oracle EBS tables behind item cost, WIP jobs, BOM, routing and inventory transactions used in manufacturing costing.
- Oracle EBS Custom Forms to APEX Migration Effort CalculatorEstimate the hours and cost to rebuild EBS custom Forms as Oracle APEX pages that launch from the EBS menu with EBS authentication.
ERP fixes and how-tos
- Fix FRM-40735: WHEN-VALIDATE-RECORD Trigger Raised Unhandled Exception ORA-06508FRM-40735 ORA-06508 in EBS Forms means stale PL/SQL state after a recompile, or an unhandled trigger exception. Exit, recompile invalid objects, and fix it.
- FRM-92101: There was a failure in the Forms Server during startupFix FRM-92101 in Oracle EBS: check the JInitiator/JRE version, formsweb.cfg, jserv.conf or forms-c4ws-config.xml, the apps tier listener log, and the Forms 6i/10g session limit before restarting services.
- How to Use Forms Personalization in Oracle EBS (No CUSTOM.pll Needed)How to use Oracle E-Business Suite Forms Personalization to hide fields, set defaults and raise messages without touching CUSTOM.pll or custom forms code.
Runs with your ERP
- Esker Order Management and Oracle E-Business SuiteHow Esker captures customer POs from email, fax and PDF and creates sales orders in Oracle EBS: integration, data flows, setup, pitfalls and a private AI layer.
- Cloud Inventory (DSI) with Oracle E-Business Suite: Mobile Barcode InventoryCloud Inventory, formerly DSI, adds offline mobile barcode inventory to Oracle E-Business Suite and JD Edwards. Data flows, setup steps, pitfalls and AI notes.
- BarTender and Oracle E-Business Suite: Label Printing from OracleHow BarTender prints labels from Oracle EBS using Oracle XML print requests and Integration Builder: methods, data flows, setup steps, pitfalls and AI help.
AI on your ERP
- AI for Oracle E-Business Suite, Without Leaving On-PremHosting Oracle EBS 12.2 on-prem or in a private cloud? Add a private LLM over concurrent programs, interface tables and AP/PO data without moving to Fusion.
- AI for Oracle EBS in Industrial Manufacturing: WIP, MRP, and BOM Questions Answered DirectlyAI for Oracle E-Business Suite in industrial manufacturing: WIP jobs, BOMs, MRP, inventory and purchasing answered in plain English, private and read-only.
Integrations
- How to use ChatGPT with Oracle E-Business SuiteUsing ChatGPT with Oracle E-Business Suite: export vs live access, custom GPT actions over ISG REST, enterprise data controls and when to keep data on-prem.
- How to connect Claude to Oracle E-Business SuiteConnect Claude to Oracle E-Business Suite via MCP, the Anthropic API, AWS Bedrock or Vertex, and know when an on-prem open-weight model is the better fit.