Portal Community
What it covers: Error code naming convention, error categories, and how to assign unique error codes in your application code.

Error Code Naming Convention

All error codes follow a standardized format for consistency and searchability:

Error-{PRODUCT}-{NUMBER}

Examples:
Error-FlowStudio-100090
Error-AppStudio-200001
Error-ProcessEngine-150025

Components Explained

Component Format Example Description
Prefix Error- Error- Fixed prefix for all error codes
Product PascalCase (no spaces) FlowStudio The application name (as provided by developers)
Number 5-6 digit unique ID 100090 Unique numeric identifier within that product

Assigning Error Numbers

Each product has 100,000 error codes available. Error number ranges are organized by product and feature area:

Product Allocation (100,000 codes each)

FlowStudio:        100000-199999 (100,000 codes)
AppStudio:         200000-299999 (100,000 codes)
AtlasForms:        300000-399999 (100,000 codes)
Octopus:           400000-499999 (100,000 codes)
Passport:          500000-599999 (100,000 codes)
WorkDesk:          600000-699999 (100,000 codes)
BizFirstObserve:   700000-799999 (100,000 codes)
EdgeStream:        800000-899999 (100,000 codes)
Custom/Integration:900000-999999 (100,000 codes)

Feature Area Organization (within your product range)

Within your product's 100,000 codes, organize by feature area using the second digit:

FlowStudio Examples:
  10x000-10x999 → Workflow execution (Feature: Execution)
  11x000-11x999 → Node system (Feature: Nodes)
  12x000-12x999 → Canvas/UI (Feature: Canvas)
  13x000-13x999 → Data binding (Feature: DataBinding)
  14x000-14x999 → Permissions (Feature: Security)
  15x000-15x999 → Store/State (Feature: Store)
  16x000-16x999 → Integration/API (Feature: Integration)
  17x000-17x999 → Observability (Feature: Observability)
  18x000-18x999 → Configuration (Feature: Config)
  19x000-19x999 → Reserved (Feature: Reserved)

  Pattern: {ProductStart}{FeatureDigit}{SubCategory}
  Example: 1 (FlowStudio) 0 (Execution) 0090 = 100090

Sub-Category Organization (1000 codes per feature)

Each feature area has 1000 codes available:

Within each feature's 1000 codes:
  XX0000-XX0099 → Validation/Input errors
  XX0100-XX0199 → Execution/Runtime errors
  XX0200-XX0299 → Data/Binding errors
  XX0300-XX0399 → State/Store errors
  XX0400-XX0499 → Permission/Security errors
  XX0500-XX0599 → Configuration errors
  XX0600-XX0699 → Integration/API errors
  XX0700-XX0799 → UI/Presentation errors
  XX0800-XX0899 → Resource/Performance errors
  XX0900-XX0999 → Miscellaneous/Other errors

Developers are responsible for choosing unique numbers within their product's namespace. Plan your feature areas to support growth (e.g., reserve features 10-19 for execution if you expect many codes).

Creating Error in Code

When throwing errors in your application, include the error code in your exception:

C# Example

throw new ApplicationException(
  "Error-FlowStudio-100090: Cannot execute node with invalid input"
);

JavaScript/TypeScript Example

throw new Error(
  "Error-FlowStudio-100090: Cannot execute node with invalid input"
);

Best Practices

Error Categories

When defining errors, classify them by category:

Category Typical Range Description
Validation *-000-*001999 Input validation, constraint violations, invalid configuration
Execution *-000-*000999 Runtime errors, missing data, failed operations
Permission *-003-*003999 Authorization failures, insufficient privileges
System *-999-*999999 Integration failures, external service errors

Picking a New Error Code (Non-Existing)

When you need to create a new error code that doesn't exist yet, follow this process to pick from your product's 100,000 available codes:

Step 1: Determine Your Product (100,000 codes)

First, identify which product owns this error and its base range:

Product Base Range Available Codes
FlowStudio 100000-199999 100,000
AppStudio 200000-299999 100,000
AtlasForms 300000-399999 100,000
Octopus 400000-499999 100,000
Passport 500000-599999 100,000
WorkDesk 600000-699999 100,000
BizFirstObserve 700000-799999 100,000
EdgeStream 800000-899999 100,000
Custom/Integration 900000-999999 100,000

Step 2: Choose Feature Area (1000 codes per feature)

Pick a feature area within your product using the second digit:

FlowStudio (100000-199999) example:

  10x000-10x999 → Execution (10 available: 100000-109999)
  11x000-11x999 → Nodes (10 available: 110000-119999)
  12x000-12x999 → Canvas (10 available: 120000-129999)
  13x000-13x999 → DataBinding (10 available: 130000-139999)
  14x000-14x999 → Security (10 available: 140000-149999)
  15x000-15x999 → Store (10 available: 150000-159999)
  16x000-16x999 → Integration (10 available: 160000-169999)
  17x000-17x999 → Observability (10 available: 170000-179999)
  18x000-18x999 → Config (10 available: 180000-189999)
  19x000-19x999 → Reserved (10 available: 190000-199999)

Pattern: {Base} + {Feature Digit} x1000 + {SubCategory}

Step 3: Identify Sub-Category (within 1000-code feature block)

Each feature block has 1000 codes organized by error type:

Range (within feature) Error Type Example
XX0000-XX0099 Validation/Input 100000-100099 (Execution validation)
XX0100-XX0199 Execution/Runtime 100100-100199 (Execution runtime)
XX0200-XX0299 Data/Binding 100200-100299 (Execution data)
XX0300-XX0399 State/Store 100300-100399 (Execution state)
XX0400-XX0499 Permission/Security 100400-100499 (Execution security)
XX0500-XX0599 Configuration 100500-100599 (Execution config)
XX0600-XX0699 Integration/API 100600-100699 (Execution integration)
XX0700-XX0799 UI/Presentation 100700-100799 (Execution UI)
XX0800-XX0899 Resource/Performance 100800-100899 (Execution perf)
XX0900-XX0999 Miscellaneous 100900-100999 (Execution misc)

Step 4: Find Next Available Number

Method A: Check ErrorCodes Index

  1. Open ErrorManagement/ErrorCodes/Index.html
  2. Find your product section
  3. See "Next Available" number (updated automatically)

Method B: Search in Code

# Find highest number in your product
grep -r "Error-FlowStudio-" src/ packages/ | \
  grep -o "[0-9]\{6\}" | sort -n | tail -1

# Example output: 100090
# Your next code: 100091

Method C: List Documentation Files

# List all existing error codes for your product
ls ErrorManagement/ErrorCodes/Error-FlowStudio-*.html | \
  sort -V | tail -5

# Shows last 5 codes, pick the next sequential number

Step 5: Validate Uniqueness

# Check if this code already exists
grep -r "Error-FlowStudio-100091" .
# Should return: No matches

# Check documentation
ls ErrorManagement/ErrorCodes/Error-FlowStudio-100091.html
# Should return: No such file

Step 6: Reserve and Document

Once you've picked your number:

  1. Add it to your code error messages/logs
  2. Create documentation page: Error-{PRODUCT}-{NUMBER}.html
  3. Update ErrorCodes/Index.html with the new error card
  4. Commit code + documentation together

Reserving Error Codes

To avoid conflicts:

  1. Check the ErrorCodes/ directory for existing codes in your range
  2. Follow the "Picking a New Error Code" process above
  3. Document the range in your service's README or developer guide
  4. Commit your error code documentation at the same time as your code change

Common Mistakes

❌ Avoid:
✓ Do:

Next Steps

Once you've defined your error code, proceed to Step 2: Documentation to create the error reference page.