---
id: object/table/700
type: object
title: Table 700 "Error Message"
summary: Table 700 "Error Message" in Base Application (System.Utilities). 21 fields, 38 public procedures, 6 events. Present since at least BC23, still in BC30, changed in BC24-26.
tier: official
language: en
tags:
  - table
  - base application
versions:
  introduced: null
  last_changed: "26"
  deprecated: null
review:
  state: derived
  by: null
  at: null
  flags: []
generated:
  at: "2026-10-11T00:31:51.816Z"
  pipeline: 0.2.0
  prompts: {}
  input_hash: b2ad58510250b3ebae80eb123f8544025b6963ed5a5ef8f9455add5ced693e1c
evidence:
  - kind: code
    url: https://github.com/microsoft/BCApps/blob/ea08af5ef2d6a9b5c5af4a029288abbe2c883220/src/Layers/W1/BaseApp/Modules/System/ErrorMessage/ErrorMessage.Table.al
    title: src/Layers/W1/BaseApp/Modules/System/ErrorMessage/ErrorMessage.Table.al (releases/29.x)
    date: null
    commit: ea08af5ef2d6a9b5c5af4a029288abbe2c883220
    t: null
    quote: null
links:
  learn: []
  objects: []
  features: []
  topics: []
  localizations: []
  videos: []
  posts: []
  guidelines: []
object_type: table
object_id: 700
name: Error Message
namespace: System.Utilities
app: Base Application
extends: null
first_version: "23"
last_version: "30"
present_in:
  - "23"
  - "24"
  - "25"
  - "26"
  - "27"
  - "28"
  - "29"
  - "30"
changed_in:
  - "24"
  - "25"
  - "26"
source_major: "29"
obsolete: null
countries: []
ms_search_form_ids: []
counts:
  fields: 21
  procedures: 53
  events: 6
  subscribers: 0
relations:
  out: 3
  referenced_by: 3
  pages: 3
  extended_by: 2
  event_subscribers: 2
  calls: 2
  called_by: 0
  implements: 0
---

# Table 700 "Error Message"

> Table 700 "Error Message" in Base Application (System.Utilities). 21 fields, 38 public procedures, 6 events. Present since at least BC23, still in BC30, changed in BC24-26.

Base Application · System.Utilities · BC23-30 · [source at ea08af5e](https://github.com/microsoft/BCApps/blob/ea08af5ef2d6a9b5c5af4a029288abbe2c883220/src/Layers/W1/BaseApp/Modules/System/ErrorMessage/ErrorMessage.Table.al) · facts from BC29

## Properties

| Property | Value |
|---|---|
| Caption | Error Message |
| DataClassification | CustomerContent |

## Fields

Explanation: the field's ToolTip in the code; without one, the ToolTip of a page control bound to the field (marked via the page); without that, its Caption (marked caption) when that differs from the name.

| No. | Name | Type | Explanation | Notes |
|---|---|---|---|---|
| 1 | ID | Integer | — | AutoIncrement |
| 2 | Record ID | RecordID | — |  |
| 3 | Field Number | Integer | — |  |
| 4 | Message Type | Option | Specifies if the message is an error, a warning, or information. <small>via [Page 700 "Error Messages"](../page/700.md)</small> | OptionCaption: Error,Warning,Information; not editable |
| 5 | Description | Text[250] | — | obsolete Removed 25.0; #if not CLEANSCHEMA25; not editable |
| 6 | Additional Information | Text[250] | Specifies more information than the information shown in the Description field. <small>via [Page 700 "Error Messages"](../page/700.md)</small> | not editable |
| 7 | Support Url | Text[250] | Specifies the URL of an external web site that offers additional support. <small>via [Page 700 "Error Messages"](../page/700.md)</small> | not editable |
| 8 | Table Number | Integer | — |  |
| 10 | Context Record ID | RecordID | — |  |
| 11 | Field Name | Text[80] | Specifies the field where the error occurred. <small>via [Page 700 "Error Messages"](../page/700.md)</small> | FlowField: lookup(Field."Field Caption" where(TableNo = field("Table Number"), "No." = field("Field Number"))); not editable |
| 12 | Table Name | Text[80] | Specifies error messages that occur during data processing. <small>via [Page 701 "Error Messages Part"](../page/701.md)</small> | FlowField: lookup("Table Metadata".Caption where(ID = field("Table Number"))); not editable |
| 13 | Context Field Number | Integer | — | DataClassification SystemMetadata |
| 14 | Context Table Number | Integer | — | DataClassification SystemMetadata |
| 15 | Context Field Name | Text[80] | Specifies the field where the error occurred. <small>via [Page 700 "Error Messages"](../page/700.md)</small> | FlowField: lookup(Field."Field Caption" where(TableNo = field("Context Table Number"), "No." = field("Context Field Number"))); not editable |
| 16 | Register ID | Guid | — | TableRelation [Table 701 "Error Message Register"](../table/701.md) ("Error Message Register".ID); DataClassification SystemMetadata |
| 17 | Created On | DateTime | The time of error occurence. <small>via [Page 700 "Error Messages"](../page/700.md)</small> | DataClassification SystemMetadata |
| 18 | Context | Boolean | — | DataClassification SystemMetadata |
| 20 | Duplicate | Boolean | — | DataClassification SystemMetadata |
| 21 | Error Call Stack | BLOB | — | DataClassification SystemMetadata |
| 22 | Message | Text[2048] | Specifies the message. <small>via [Page 700 "Error Messages"](../page/700.md)</small> | not editable |
| 23 | Reg. Err. Msg. System ID | Guid | — | DataClassification SystemMetadata |

## Keys

- Key1: ID (clustered)
- Key2: Context Record ID, Record ID
- Key3: Message Type, ID
- Key4: Created On
- Key5: Register ID, ID, Context
- Key6: Context, Context Record ID

## Events published

- `OnBeforeLogMessage(RecRelatedVariant: Variant; FieldNumber: Integer; MessageType: Option; NewDescription: Text; var IsHandled: Boolean)` (integration)
- `OnBeforeLogSimpleMessage(MessageType: Option; NewDescription: Text; var IsHandled: Boolean)` (integration)
- `OnLogIfEmptyOnAfterCheckEmptyValue(FieldRef: FieldRef; EmptyFieldRef: FieldRef; var IsHandled: Boolean)` (integration)
- `OnLogIfNotEmptyOnAfterCheckEmptyValue(FieldRef: FieldRef; EmptyFieldRef: FieldRef; var IsHandled: Boolean)` (integration)
- `OnShowErrorMessagesOnBeforeErrorMessagesRun(var ErrorMessage: Record "Error Message"; var ErrorString: Text; var IsHandled: Boolean)` (integration)
- `OnShowErrorsOnBeforeErrorMessagesRun(var ErrorMessage: Record "Error Message"; var IsPageOpen: Boolean; var IsHandled: Boolean)` (integration)

## Trigger event subscribers

- OnDrillDownSource: [Codeunit 481 "Check Dimensions"](../codeunit/481.md) OnErrorMessageDrillDown, [Codeunit 7905 "ErrorMessagesActionHandlerImpl"](../codeunit/7905.md) OnErrorMessageDrillDown

## Procedures

- `LogIfEmpty(RecRelatedVariant: Variant; FieldNumber: Integer; MessageType: Option): Integer`
- `LogIfNotEmpty(RecRelatedVariant: Variant; FieldNumber: Integer; MessageType: Option): Integer`
- `LogIfLengthExceeded(RecRelatedVariant: Variant; FieldNumber: Integer; MessageType: Option; MaxLength: Integer): Integer`
- `LogIfInvalidCharacters(RecRelatedVariant: Variant; FieldNumber: Integer; MessageType: Option; ValidCharacters: Text): Integer`
- `LogIfOutsideRange(RecRelatedVariant: Variant; FieldNumber: Integer; MessageType: Option; LowerBound: Variant; UpperBound: Variant): Integer`
- `LogIfGreaterThan(RecRelatedVariant: Variant; FieldNumber: Integer; MessageType: Option; LowerBound: Variant): Integer`
- `LogIfLessThan(RecRelatedVariant: Variant; FieldNumber: Integer; MessageType: Option; UpperBound: Variant): Integer`
- `LogIfEqualTo(RecRelatedVariant: Variant; FieldNumber: Integer; MessageType: Option; ValueVariant: Variant): Integer`
- `LogIfNotEqualTo(RecRelatedVariant: Variant; FieldNumber: Integer; MessageType: Option; ValueVariant: Variant): Integer`
- `LogContextFieldError(ContextFieldNumber: Integer; NewDescription: Text; RecRelatedVariant: Variant; SourceFieldNumber: Integer; SupportURL: Text[250]): Integer`
- `LogSimpleMessage(MessageType: Option; NewDescription: Text): Integer`
- `LogSimpleMessage(MessageType: Option; NewDescription: Text; ErrorCallStack: Text): Integer`
- `LogMessage(RecRelatedVariant: Variant; FieldNumber: Integer; MessageType: Option; NewDescription: Text): Integer`
- `LogDetailedMessage(RecRelatedVariant: Variant; FieldNumber: Integer; MessageType: Option; NewDescription: Text; AdditionalInformation: Text[250]; SupportUrl: Text[250]): Integer`
- `LogLastError()`
- `LogLastError(ClearError: Boolean)` (internal)
- `AddMessageDetails(MessageID: Integer; AdditionalInformation: Text[250]; SupportUrl: Text[250])`
- `FindLastID(): Integer`
- `GetContext(var ErrorMessage: Record "Error Message"): Boolean`
- `GetLastID(): Integer`
- `GetCachedLastID(): Integer`
- `SetContext(ContextRecordVariant: Variant)`
- `ClearLog()`
- `ClearLogRec(RecordVariant: Variant)`
- `HasErrorMessagesRelatedTo(RecRelatedVariant: Variant): Boolean`
- `ErrorMessageCount(LowestSeverityMessageType: Option): Integer`
- `HasErrors(ShowMessage: Boolean): Boolean`
- `ShowErrors(): Boolean`
- `ShowErrorMessages(RollBackOnError: Boolean): Text`
- `ToString(): Text`
- `ThrowError()`
- `FindRecord(RecordID: RecordID; FieldNumber: Integer; MessageType: Option; NewDescription: Text): Integer`
- `CopyToTemp(var TempErrorMessage: Record "Error Message" temporary)`
- `CopyFromTemp(var TempErrorMessage: Record "Error Message" temporary)`
- `CopyFromContext(ContextRecordVariant: Variant)`
- `GetErrorCallStack(): Text`
- `SetErrorCallStack(NewCallStack: Text)`
- `ShowErrorCallStack()`

Plus 9 local procedures.

## Triggers

OnInsert

## Relations

- drill-down page [Page 701 "Error Messages Part"](../page/701.md)
- lookup page [Page 701 "Error Messages Part"](../page/701.md)
- Register ID: TableRelation [Table 701 "Error Message Register"](../table/701.md)

## Referenced by

3 fields in 1 objects relate to this table (TableRelation or CalcFormula).

- [Table 701 "Error Message Register"](../table/701.md): Errors, Information, Warnings

## Pages and codeunits on this table

- [Page 700 "Error Messages"](../page/700.md) (source table)
- [Page 701 "Error Messages Part"](../page/701.md) (source table)
- [Page 7900 "Error Messages Card Part"](../page/7900.md) (source table)
- [Codeunit 7901 "Execute Error Action"](../codeunit/7901.md) (codeunit runs on it)

## Extended by

- [Table extension 705 "Error Message Extension"](../tableextension/705.md)
- [Table extension 7900 "Error Message Ext."](../tableextension/7900.md)

## Calls

From the extracted call graph of BC29 (graphify-al on the snapshot checkout): calls whose target is known from a declared type or an `Object::"Name"` argument. Interface dispatch and calls through events are not counted, so the list is not complete.

- [Codeunit 701 "Data Type Management"](../codeunit/701.md) (11 calls: `CopyFromContext → GetRecordRef`, `FieldValueIsWithinFilter → GetRecordRefAndFieldRef`, `HasErrorMessagesRelatedTo → GetRecordRef`, …)
- [Codeunit 28 "Error Message Management"](../codeunit/28.md) (2 calls: `AssertRecordTemporaryOrInContext → GetTopContext`, `GetContext → GetTopContext`)

## Across versions

- Present in: BC23-30
- Changed (declaration) in: BC24-26

## Deprecations

- field Description: Removed 25.0 (#if not CLEANSCHEMA25), "Replaced by "Message" which has an increase in field length."

Source: AL metadata extracted from the code (names, ids, signatures, properties); no code bodies (D10).

## Ask your agent

Procedure bodies are not stored here (D10). The call sections above are our own, per object, from the BC29 call graph. For a procedure body or the calls of one procedure, ask bc-code-atlas (external, by Stefan Maron, MIT; default corpus w1-28), which the bc-observatory plugin connects: `bcatlas_resolve_node(object_type: "table", object_name: "Error Message")`, then `bcatlas_get_procedure_body` or `bcatlas_get_neighbors` on the returned id.
