Appendix C. Error Numbers and Messages

Table of Contents
Error List
RXSUBCOM Utility Program
RXQUEUE Utility Program
RexxC Utility Program

The error numbers produced by syntax errors during the processing of Rexx programs are all in the range 1 to 99. Errors are raised in response to conditions, for example, SYNTAX, NOMETHOD, and PROPAGATE. When the condition is SYNTAX, the value of the error number is placed in the variable RC when SIGNAL ON SYNTAX is trapped.

You can use the ERRORTEXT built-in function to return the text of an error message.

Some errors have associated subcodes. A subcode is a one- to three-digit decimal extension to the error number, for example, 115 in 40.115. When an error subcode is available, additional information that further defines the source of the error is given. The ERRORTEXT built-in function cannot retrieve the secondary message, but it is available from the condition object created when SIGNAL ON SYNTAX traps an error.

Error List

Error 3 - Failure during initialization

Explanation:

The REXX program could not be read from the disk.

The associated subcodes are:

001

Failure during initialization: File "filename" is unreadable

900

message

901

Failure during initialization: Program "program" was not found

902

Error writing output file "file"

903

Program "program_name" cannot be run by this version of the REXX interpreter

904

Failure during initialization: Program "program" needs to be tokenized. To run untokenized scripts you need a full version of Object REXX.

Error 4 - Program interrupted

Explanation:

The system interrupted the execution of your program because of an error or a user request.

The associated subcodes are:

001

Program interrupted with condition condition

900

message

Error 5 - System resources exhausted

Explanation:

While trying to execute a program, the language processor was unable to get the resources it needed to continue. For example, it could not get the space needed for its work areas or variables. The program that called the language processor might itself have already used up most of the available storage. Or a request for storage might have been for more than the implementation maximum.

The associated subcodes are:

900

message

Error 6 - Unmatched "/*" or quote

Explanation:

A comment or literal string was started but never finished. This could be because the language processor detected:

  • The end of the program (or the end of the string in an INTERPRET instruction) without finding the ending "*/" for a comment or the ending quotation mark for a literal string

  • The end of the line for a literal string.

The associated subcodes are:

001

Unmatched comment delimiter ("/*") on line line_number

002

Unmatched single quote (')

003

Unmatched double quote (")

900

message

Error 7 - WHEN or OTHERWISE expected

Explanation:

At least one WHEN construct (and possibly an OTHERWISE clause) is expected within a SELECT instruction. This message is issued if any other instruction is found or there is no WHEN construct before the OTHERWISE or all WHEN expressions are false and an OTHERWISE is not present. A common cause of this error is if you forget the DO and END around the list of instructions following a WHEN. For example:

WRONG                  RIGHT

Select                 Select
When a=c then          When a=c then DO
Say 'A equals C'       Say 'A equals C'
exit                   exit
Otherwise nop            end
end                    Otherwise nop
end

The associated subcodes are:

001

SELECT on line line_number requires WHEN

002

SELECT on line line_number requires WHEN, OTHERWISE, or END

003

All WHEN expressions of SELECT are false; OTHERWISE expected

Error 8 - Unexpected THEN or ELSE

Explanation:

A THEN or an ELSE clause was found that does not match a corresponding IF or WHEN clause. This often occurs because of a missing END or DO...END in the THEN part of a complex IF...THEN...ELSE construction. For example:

WRONG                     RIGHT

If a=c then do;           If a=c then do;
Say EQUALS                Say EQUALS
exit                      exit
else                        end
Say NOT EQUALS            else
Say NOT EQUALS

The associated subcodes are:

001

THEN has no corresponding IF or WHEN clause

002

ELSE has no corresponding THEN clause

Error 9 - Unexpected WHEN or OTHERWISE

Explanation:

A WHEN or OTHERWISE was found outside of a SELECT construction. You might have accidentally enclosed the instruction in a DO...END construction by leaving out an END, or you might have tried to branch to it with a SIGNAL instruction (which does not work because the SELECT is then ended).

The associated subcodes are:

001

WHEN has no corresponding SELECT

002

OTHERWISE has no corresponding SELECT

Error 10 - Unexpected or unmatched END

Explanation:

More ENDs were found in your program than DO or SELECT instructions, or the ENDs did not match the DO or SELECT instructions. This message also occurs if you try to transfer control into the middle of a loop using SIGNAL. In this case, the language processor does not expect the END because it did not process the previous DO instruction. Remember also that SIGNAL deactivates any current loops, so it cannot transfer control from one place inside a loop to another.

Another cause for this message is placing an END immediately after a THEN or ELSE subkeyword or specifying a name on the END keyword that does not match the name following DO. Putting the name of the control variable on ENDs that close repetitive loops can also help locate this kind of error.

The associated subcodes are:

001

END has no corresponding DO or SELECT

002

Symbol following END ("symbol") must match block specification name ("control_variable") on line line_number or be omitted

003

END corresponding to block on line symbol must not have a symbol following it because there is no LABEL or control variable; found "line_number"

004

Symbol following END ("symbol") must match LABEL of SELECT specification ("control_variable") on line line_number or be omitted

005

END must not immediately follow THEN

006

END must not immediately follow ELSE

007

END corresponding to SELECT on line symbol must not have a symbol following it because there is no LABEL; found "line_number"

Error 11 - Control stack full

Explanation:

Your program exceeds the nesting level limit for control structures (for example, DO...END and IF...THEN...ELSE). This could be because of a looping INTERPRET instruction, such as:


      line='INTERPRET line'
      INTERPRET line

    

These lines loop until they exceed the nesting level limit and the language processor issues this message. Similarly, a recursive subroutine or internal function that does not end correctly can loop until it causes this message.

The associated subcodes are:

001

Insufficient control stack space; cannot continue execution

900

message

Error 13 - Invalid character in program

Explanation:

A character was found outside a literal (quoted) string that is not a whitespace character or one of the valid alphanumeric and special characters.

The associated subcodes are:

001

Incorrect character in program "character" ('hex_character'X)

900

message

Error 14 - Incomplete DO/SELECT/IF

Explanation:

At the end of the program or the string for an INTERPRET instruction, a DO or SELECT instruction was found without a matching END or an IF clause that is not followed by a THEN clause. Putting the name of the control variable on each END closing a controlled loop can help locate this kind of error.

The associated subcodes are:

001

DO instruction on line line_number requires matching END

002

SELECT instruction on line line_number requires matching END

003

THEN on line line_number must be followed by an instruction

004

ELSE on line line_number must be followed by an instruction

901

OTHERWISE on line line_number requires matching END

Error 15 - Invalid hexadecimal or binary string

Explanation:

Hexadecimal strings must not have leading or trailing whitespace characters and whitespace can only be embedded at byte boundaries. Only the digits 0-9 and the letters a-f and A-F are allowed. The following are valid hexadecimal strings:


        '13'x
        'A3C2 1c34'x
        '1de8'x

    

Binary strings can have whitespace only at the boundaries of groups of four binary digits. Only the digits 0 and 1 are allowed. These are valid binary strings:


        '1011'b
        '110 1101'b
        '101101 11010011'b

    

You might have mistyped one of the digits, for example, typing a letter O instead of the number 0. Or you might have used the one-character symbol X or B (the name of the variable X or B, respectively) after a literal string when the string is not intended as a hexadecimal or binary specification. In this case, use the explicit concatenation operator (||) to concatenate the string to the value of the symbol.

The associated subcodes are:

001

Incorrect location of whitespace character in position position in hexadecimal string

002

Incorrect location of whitespace character in position position in binary string

003

Only 0-9, a-f, A-F, and whitespace characters are valid in a hexadecimal string; found "character"

004

Only 0, 1, and whitespace characters are valid in a binary string; found "character"

Error 16 - Label not found

Explanation:

A SIGNAL instruction has been executed or an event for which a trap was set with SIGNAL ON has occurred, and the language processor could not find the label specified. You might have mistyped the label or forgotten to include it.

The associated subcodes are:

001

Label "label_name" not found

Error 17 - Unexpected PROCEDURE

Explanation:

A PROCEDURE instruction was encountered at an incorrect position. This could occur because no internal routines are active or because the PROCEDURE instruction was not the first instruction processed after the CALL instruction or function call. One cause for this error is dropping through to an internal routine, rather than calling it with a CALL instruction or a function call.

The associated subcodes are:

001

PROCEDURE is valid only when it is the first instruction executed after an internal CALL or function invocation

901

INTERPRET data must not contain PROCEDURE

Error 18 - THEN expected

Explanation:

A THEN clause must follow each REXX IF or WHEN clause. The language processor found another clause before it found a THEN clause.

The associated subcodes are:

001

IF instruction on line line_number requires matching THEN clause

002

WHEN instruction on line line_number requires matching THEN clause

Error 19 - String or symbol expected

Explanation:

A symbol or string was expected after the CALL or SIGNAL keywords but none was found. You might have omitted the string or symbol or inserted a special character (such as a parenthesis).

The associated subcodes are:

001

String or symbol expected after ADDRESS keyword

002

String or symbol expected after CALL keyword

003

String or symbol expected after NAME keyword

004

String or symbol expected after SIGNAL keyword

006

String or symbol expected after TRACE keyword

007

String or symbol expected after PARSE keyword

900

message

901

String or symbol expected after ::CLASS keyword

902

String or symbol expected after ::METHOD keyword

903

String or symbol expected after ::ROUTINE keyword

904

String or symbol expected after ::REQUIRES keyword

905

String or symbol expected after EXTERNAL keyword

906

String or symbol expected after METACLASS keyword

907

String or symbol expected after SUBCLASS keyword

908

String or symbol expected after INHERIT keyword

909

String or symbol expected after tilde (~)

911

String or symbol expected after superclass colon (:)

912

String or symbol expected after STREAM keyword

913

String or symbol expected after MIXINCLASS keyword

914

String or symbol expected as ::ATTRIBUTE directive name

915

String or symbol expected as ::CONSTANT directive name

916

String or symbol expected as ::CONSTANT value

917

String or symbol expected as DIGITS value

918

String or symbol expected as FUZZ value

919

String or symbol expected as TRACE value

Error 20 - Symbol expected

Explanation:

A symbol is expected after CALL ON, CALL OFF, END, ITERATE, LEAVE, NUMERIC, PARSE, SIGNAL ON, or SIGNAL OFF. Also, a list of symbols or variable references is expected after DROP, EXPOSE, and PROCEDURE EXPOSE. Either there was no symbol when one was required or the language processor found another token.

The associated subcodes are:

900

message

901

Symbol expected after DROP keyword

902

Symbol expected after EXPOSE keyword

903

Symbol expected after PARSE keyword

904

Symbol expected after PARSE VAR

905

NUMERIC must be followed by one of the keywords DIGITS, FORM, or FUZZ; found "symbol"

906

Symbol expected after "(" of a variable reference

907

Symbol expected after LEAVE keyword

908

Symbol expected after ITERATE keyword

909

Symbol expected after END keyword

911

Symbol expected after ON keyword

912

Symbol expected after OFF keyword

913

Symbol expected after USE ARG

914

Symbol expected after RAISE keyword

915

Symbol expected after USER keyword

916

Symbol expected after ::

917

Symbol expected after superclass colon (:)

918

Symbol expected after LABEL keyword

Error 21 - Invalid data on end of clause

Explanation:

A clause such as SELECT or NOP is followed by a token other than a comment.

The associated subcodes are:

900

message

901

Data must not follow the NOP keyword; found "data"

902

Data must not follow the SELECT keyword; found "data"

903

Data must not follow the NAME keyword; found "data"

904

Data must not follow the condition name; found "data"

905

Data must not follow the SIGNAL label name; found "data"

906

Data must not follow the TRACE setting; found "data"

907

Data must not follow the LEAVE control variable name; found "data"

908

Data must not follow the ITERATE control variable name; found "data"

909

Data must not follow the END control variable name; found "data"

911

Data must not follow the NUMERIC FORM specification; found "data"

912

Data must not follow the GUARD OFF specification; found "data"

913

Data must not follow the ::CONSTANT value; found "data"

Error 22 - Invalid character string

Explanation:

A literal string contains character codes that are not valid. This might be because some characters are not possible, or because the character set is extended and certain character combinations are not allowed.

The associated subcodes are:

001

Incorrect character string "character_string" ('hex_string'X)

900

message

901

Incorrect double-byte character

Error 23 - Invalid data string

Explanation:

A data string (that is, the result of an expression) contains character codes that are not valid. This might be because some characters are not possible, or because the character set is extended and certain character combinations are not allowed.

The associated subcodes are:

001

Incorrect data string "string" ('hex_string'X)

900

message

Error 24 - Invalid TRACE request

Explanation:

This message is issued when:

  • The option on a TRACE instruction or the argument to the built-in function does not start with A, C, E, F, I, L, N, O, or R.

  • In interactive debugging, you entered a number that is not a whole number.

The associated subcodes are:

001

TRACE request letter must be one of "ACEFILNOR"; found "value"

901

Numeric TRACE requests are valid only from interactive debugging

Error 25 - Invalid subkeyword found

Explanation:

An unexpected token was found at his position of an instruction where a particular subkeyword was expected. For example, in a NUMERIC instruction, the second token must be DIGITS, FUZZ, or FORM.

The associated subcodes are:

001

CALL ON must be followed by one of the keywords ERROR, FAILURE, HALT, NOTREADY, USER, or ANY; found "word"

002

CALL OFF must be followed by one of the keywords ERROR, FAILURE, HALT, NOTREADY, USER, or ANY; found "word"

003

SIGNAL ON must be followed by one of the keywords ERROR, FAILURE, HALT, LOSTDIGITS, NOTREADY, NOMETHOD, NOSTRING, NOVALUE, SYNTAX, USER, or ANY; found "word"

004

SIGNAL OFF must be followed by one of the keywords ERROR, FAILURE, HALT, LOSTDIGITS, NOTREADY, NOMETHOD, NOSTRING, NOVALUE, SYNTAX, USER, or ANY; found "word"

011

NUMERIC FORM must be followed by one of the keywords SCIENTIFIC or ENGINEERING; found "word"

012

PARSE must be followed by one of the keywords ARG, LINEIN, PULL, SOURCE, VALUE, VAR, or VERSION; found "word"

015

NUMERIC must be followed by one of the keywords DIGITS, FORM, or FUZZ; found "word"

017

PROCEDURE must be followed by the keyword EXPOSE or nothing; found "word"

900

message

901

Unknown keyword on ::CLASS directive; found "word"

902

Unknown keyword on ::METHOD directive; found "word"

903

Unknown keyword on ::ROUTINE directive; found "word"

904

Unknown keyword on ::REQUIRES directive; found "word"

905

USE must be followed by the keyword ARG; found "word"

906

RAISE must be followed by one of the keywords ERROR, FAILURE, HALT, LOSTDIGITS, NOMETHOD, NOSTRING, NOTREADY, NOVALUE, SYNTAX, or USER; found "word"

907

Unknown keyword on RAISE instruction; found "word"

908

Duplicate DESCRIPTION keyword found

909

Duplicate ADDITIONAL or ARRAY keyword found

911

Duplicate RETURN or EXIT keyword found

912

GUARD ON or GUARD OFF must be followed by the keyword WHEN; found "word"

913

GUARD must be followed by the keyword ON or OFF; found "word"

914

CALL ON condition must be followed by the keyword NAME; found "word"

915

SIGNAL ON condition must be followed by the keyword NAME; found "word"

916

Unknown keyword on FORWARD instruction; found "keyword"

917

Duplicate TO keyword found

918

Duplicate ARGUMENTS or ARRAY keyword found

919

Duplicate RETURN or CONTINUE keyword found

921

Duplicate CLASS keyword found

922

Duplicate MESSAGE keyword found

923

SELECT must be followed by the keyword LABEL; found "word"

924

Unknown keyword on ::OPTIONS directive; found "word"

Error 26 - Invalid whole number

Explanation:

An expression was found that did not evaluate to a whole number or is greater than the limit (the default is 999,999,999 for 32-bit system and 999,999,999,999,999,999 for 64-bit systems):

  • The positional patterns in parsing templates (including variable positional patterns)

  • The operand to the right of the power operator

  • The values of exprr and exprf in the DO instruction

  • The values given for DIGITS or FUZZ in the NUMERIC instruction

  • The number used in the option of the TRACE setting This error is also raised if the value is not permitted (for example, a negative repetition count in a DO instruction), or the division performed during an integer divide or remainder operation does not result in a whole number.

The associated subcodes are:

002

Value of repetition count expression in DO instruction must be zero or a positive whole number; found "value"

003

Value of FOR expression in DO instruction must be zero or a positive whole number; found "value"

004

Positional pattern of PARSE template must be a whole number; found "value"

005

DIGITS value must be a positive whole number; found "value"

006

FUZZ value must be zero or a positive whole number; found "value"

007

Number used in TRACE setting must be a whole number; found "value"

008

Operand to the right of the power operator (**) must be a whole number; found "value"

011

Result of % operation did not result in a whole number

012

Result of // operation did not result in a whole number

900

message

901

Result of a method call did not result in a whole number; found "value"

902

Result of a COMPARETO method call did not result in a whole number; found "value"

903

Result of a COMPARE method call did not result in a whole number; found "value"

Error 27 - Invalid DO syntax

Explanation:

A syntax error was found in the DO instruction. You probably used BY, TO, FOR, WHILE, or UNTIL twice, used a WHILE and an UNTIL, or used BY, TO, or FOR when there is no control variable specified.

The associated subcodes are:

001

WHILE and UNTIL keywords cannot be used on the same DO loop

901

Incorrect data following FOREVER keyword on the DO loop; found "data"

902

DO keyword keyword can be specified only once

Error 28 - Invalid LEAVE or ITERATE

Explanation:

A LEAVE or ITERATE instruction was found at an incorrect position. Either no loop was active, or the name specified on the instruction did not match the control variable of any active loop. Note that internal routine calls and the INTERPRET instruction protect DO loops by making them inactive. Therefore, for example, a LEAVE instruction in a subroutine cannot affect a DO loop in the calling routine. You probably tried to use the SIGNAL instruction to transfer control within or into a loop. Because a SIGNAL instruction ends all active loops, any ITERATE or LEAVE instruction causes this message.

The associated subcodes are:

001

LEAVE is valid only within a repetitive loop or labeled block instruction

002

ITERATE is valid only within a repetitive loop

003

Symbol following LEAVE ("symbol") must either match the label of a current loop or block instruction.

004

Symbol following ITERATE ("symbol") must either match the label of a current loop or be omitted

005

Symbol following ITERATE ("symbol") does not match a repetitive block instruction

Error 29 - Environment name too long

Explanation:

The environment name specified on the ADDRESS instruction is longer than permitted for the system under which the interpreter is running.

The associated subcodes are:

001

Environment name exceeds limit characters; found "environment_name"

Error 30 - Name or string too long

Explanation:

A variable name, label name, literal (quoted) string has exceeded the allowed limit of 250 characters. The limit for names includes any substitutions. A possible cause of this error is if you use a period (.) in a name, causing an unexpected substitution. Leaving off an ending quotation mark for a literal string, or putting a single quotation mark in a string, can cause this error because several clauses can be included in the string. For example, write the string 'don't' as 'don't' or "don't".

The associated subcodes are:

001

Name exceeds 250 characters: "name"

002

Literal string exceeds 250 characters: "string"

900

message

901

Hexadecimal literal string exceeds 250 characters "string"

902

Binary literal string exceeds 250 characters "string"

Error 31 - Name starts with number or "."

Explanation:

A variable was found whose name begins with a numeric digit or a period. You cannot assign a value to such a variable because you could then redefine numeric constants.

The associated subcodes are:

001

A value cannot be assigned to a number; found "number"

002

Variable symbol must not start with a number; found "symbol"

003

Variable symbol must not start with a "."; found "symbol"

900

message

Error 33 - Invalid expression result

Explanation:

The result of an expression was found not to be valid in the context in which it was used.

The associated subcodes are:

001

Value of NUMERIC DIGITS ("value") must exceed value of NUMERIC FUZZ ("value")

002

Value of NUMERIC DIGITS ("value") must not exceed value

900

message

901

Incorrect expression result following VALUE keyword of ADDRESS instruction

902

Incorrect expression result following VALUE keyword of SIGNAL instruction

903

Incorrect expression result following VALUE keyword of TRACE instruction

904

Incorrect expression result following SYNTAX keyword of RAISE instruction

Error 34 - Logical value not 0 or 1

Explanation:

An expression was found in an IF, WHEN, DO WHILE, or DO UNTIL phrase that did not result in a 0 or 1. Any value operated on by a logical operator must result in a 0 or 1. For example, the phrase If result then exit rc fails if result has a value other than 0 or 1.

The associated subcodes are:

001

Value of expression following IF keyword must be exactly "0" or "1"; found "value"

002

Value of expression following WHEN keyword must be exactly "0" or "1"; found "value"

003

Value of expression following WHILE keyword must be exactly "0" or "1"; found "value"

004

Value of expression following UNTIL keyword must be exactly "0" or "1"; found "value"

005

Value of expression to the left of the logical operator "operator" must be exactly "0" or "1"; found "value"

006

Value of logical list expression element must be exactly "0" or "1"; found "value"

900

message

901

Logical value must be exactly "0" or "1"; found "value"

902

Value of expression following GUARD keyword must be exactly "0" or "1"; found "value"

903

Authorization return value must be exactly "0" or "1"; found "value"

904

Property logical value must be exactly "0", "1", "true", or "false"; found "value"

Error 35 - Invalid expression

Explanation:

An expression contains a grammatical error. Possible causes:

  • An expression is missing when one is required

  • You ended an expression with an operator

  • You specified, in an expression, two operators next to one another with nothing in between them

  • You did not specify a right parenthesis when one was required

  • You used special characters (such as operators) in an intended character expression without enclosing them in quotation marks

The associated subcodes are:

001

Incorrect expression detected at "token"

900

message

901

Prefix operator "operator" is not followed by an expression term

902

Missing conditional expression following IF keyword

903

Missing conditional expression following WHEN keyword

904

Missing initial expression for DO control variable

905

Missing expression following BY keyword

906

Missing expression following TO keyword

907

Missing expression following FOR keyword

908

Missing expression following WHILE keyword

909

Missing expression following UNTIL keyword

911

Missing expression following OVER keyword

912

Missing expression following INTERPRET keyword

913

Missing expression following OPTIONS keyword

914

Missing expression following VALUE keyword of an ADDRESS instruction

915

Missing expression following VALUE keyword of a SIGNAL instruction

916

Missing expression following VALUE keyword of a TRACE instruction

917

Missing expression following VALUE keyword of a NUMERIC FORM instruction

918

Missing expression following assignment instruction

919

Operator "operator" is not followed by an expression term

921

Missing expression following GUARD keyword

922

Missing expression following DESCRIPTION keyword of a RAISE instruction

923

Missing expression following ADDITIONAL keyword of a RAISE instruction

924

Missing "(" on expression list of the ARRAY keyword

925

Missing expression following TO keyword of a FORWARD instruction

926

Missing expression following ARGUMENTS keyword of a FORWARD instruction

927

Missing expression following MESSAGE keyword of a FORWARD instruction

928

Missing expression following CLASS keyword of a FORWARD instruction

929

Missing expression in logical_expression_list

930

Missing expression following "=" token of a USE STRICT ARG instruction

Error 36 - Unmatched "(" or "[" in expression

Explanation:

A matched parenthesis or bracket was found within an expression. There are more left parentheses than right parentheses or more left brackets than right brackets. To include a single parenthesis in a command, enclose it in quotation marks.

The associated subcodes are:

900

message

901

Left parenthesis "(" in position position on line line_number requires a corresponding right parenthesis ")"

902

Square bracket "[" in position position on line line_number requires a corresponding right square bracket "]"

Error 37 - Unexpected ",", ")", or "]"

Explanation:

Either a comma was found outside a function invocation, or there are too many right parentheses or right square brackets in an expression. To include a comma in a character expression, enclose it in quotation marks. For example, write the instruction:

       Say Enter A, B, or C
    

as follows:

       Say 'Enter A, B, or C'
    

The associated subcodes are:

001

Unexpected ","

002

Unmatched ")" in expression

900

message

901

Unexpected "]"

Error 38 - Invalid template or pattern

Explanation:

A special character that is not allowed within a parsing template (for example, "%") has been found, or the syntax of a variable pattern is incorrect (that is, no symbol was found after a left parenthesis). This message is also issued if you omit the WITH subkeyword in a PARSE VALUE instruction.

The associated subcodes are:

001

Incorrect PARSE template detected at "column_position"

002

Incorrect PARSE position detected at "column_position"

003

PARSE VALUE instruction requires WITH keyword

900

message

901

Missing PARSE relative position

Error 39 - Evaluation stack overflow

Explanation:

The expression is too complex to be evaluated by the language processor.

Error 40 - Incorrect call to routine

Explanation:

An incorrect call to a routine was found. Possible causes:

  • You passed incorrect data (arguments) to the built-in or external routine.

  • You passed too many arguments to the built-in, external, or internal routine.

  • The external routine called was not compatible with the language processor.

If you did not try to call a routine, you might have a symbol or a string adjacent to a "(" when you meant it to be separated by a blank or other operator. The language processor would treat this as a function call. For example, write TIME(4+5) as follows: TIME*(4+5)

The associated subcodes are:

001

External routine "routine" failed

003

Not enough arguments in invocation of routine; minimum expected is number

004

Too many arguments in invocation of routine; maximum expected is number

005

Missing argument in invocation of routine; argument argument_number is required

011

function_name argument argument_number must be a number; found "value"

012

function_name argument argument_number must be a whole number; found "value"

013

function_name argument argument_number must be zero or positive; found "value"

014

function_name argument argument_number must be positive; found "value"

019

function_name argument 2, "value", is not in the format described by argument 3, "value"

021

function_name argument argument_number must not be a null string

022

function_name argument argument_number must be a single character or null; found "value"

023

function_name argument argument_number must be a single character; found "value"

024

function_name argument argument_number must be a binary string; found "value"

025

function_name argument argument_number must be a hexadecimal string; found "value"

026

function_name argument argument_number must be a valid symbol; found "value"

027

function_name argument 1 must be a valid stream name; found "value"

029

function_name conversion to format "value" is not allowed

032

RANDOM difference between argument 1 ("value") and argument 2 ("value") must not exceed 999,999,999

033

RANDOM argument 1 ("argument") must be less than or equal to argument 2 ("argument")

034

SOURCELINE argument 1 ("argument") must be less than or equal to the number of lines in the program (argument)

035

X2D argument 1 cannot be expressed as a whole number; found "value"

043

function_name argument number must be a single non-alphanumeric character or the null string; found "value"

044

function_name argument number, "value", is a format incompatible with the separator specified in argument number

900

message

901

Result returned by routine is longer than length: "value"

902

function_name argument argument_number must not exceed the whole number limit.

903

function_name argument argument_number must be in the range 0-99; found "value"

904

function_name argument argument_number must be one of values; found "value"

905

TRACE setting letter must be one of "ACEFILNOR"; found "value"

912

function_name argument argument_number must be a single-dimensional array; found "value"

913

function_name argument argument_number must have a string value; found "value"

914

Unknown VALUE function variable environment selector; found "value"

915

function_name cannot be used with QUEUE:

916

Cannot read from a write-only property.

917

Cannot write to a read-only property or typelib element.

918

Invalid native function signature specification

919

Argument argument must have a stem object or stem name value; found "value"

Error 41 - Bad arithmetic conversion

Explanation:

A term in an arithmetic expression is not a valid number or has an exponent outside the allowed range of whole number range.

You might have mistyped a variable name, or included an arithmetic operator in a character expression without putting it in quotation marks.

The associated subcodes are:

001

Nonnumeric value ("value") used in arithmetic operation

003

Nonnumeric value ("value") used with prefix operator

004

Value of TO expression of DO instruction must be numeric; found "value"

005

Value of BY expression of DO instruction must be numeric; found "value"

006

Value of control variable expression of DO instruction must be numeric; found "value"

007

Exponent exceeds number digits; found "value"

900

message

901

Value of RAISE instruction SYNTAX expression must be numeric; found "value"

Error 42 - Arithmetic overflow/underflow

Explanation:

The result of an arithmetic operation requires an exponent that is greater than the platform limit of nine digits for 32-bit systems or 18 for 64-bit systems.

This error can occur during the evaluation of an expression (often as a result of trying to divide a number by 0) or while stepping a DO loop control variable.

The associated subcodes are:

001

Arithmetic overflow detected at: "value operator value"

002

Arithmetic underflow detected at: "value operator value"

003

Arithmetic overflow; divisor must not be zero

900

message

901

Arithmetic overflow; exponent ("exponent") exceeds number digits

902

Arithmetic underflow; exponent ("exponent") exceeds number digits

903

Arithmetic underflow; zero raised to a negative power

Error 43 - Routine not found

Explanation:

A function has been invoked within an expression or a subroutine has been invoked by a CALL, but it cannot be found. Possible reasons:

  • The specified label is not in the program

  • It is not the name of a built-in function

  • The language processor could not locate it externally

Check if you mistyped the name.

If you did not try to call a routine, you might have put a symbol or string adjacent to a "(" when you meant it to be separated by a blank or another operator. The language processor then treats it as a function call. For example, write the string 3(4+5) as 3*(4+5).

The associated subcodes are:

001

Could not find routine "routine"

900

message

901

Could not find routine "routine" for ::REQUIRES

Error 44 - Function or message did not return data

Explanation:

The language processor called an external routine within an expression. The routine seemed to end without error, but it did not return data for use in the expression.

You might have specified the name of a program that is not intended for use as a REXX function. Call it as a command or subroutine instead.

The associated subcodes are:

001

No data returned from function "function"

900

message

Error 45 - No data specified on function RETURN

Explanation:

A REXX program has been called as a function, but returned without passing back any data.

The associated subcodes are:

001

Data expected on RETURN instruction because routine "routine" was called as a function

Error 46 - Invalid variable reference

Explanation:

Within an ARG, DROP, EXPOSE, PARSE, PULL, or PROCEDURE instruction, the syntax of a variable reference (a variable whose value is to be used, indicated by its name being enclosed in parentheses) is incorrect. The right parenthesis that must immediately follow the variable name might be missing or the variable name might be misspelled.

The associated subcodes are:

001

Extra token ("token") found in variable reference list; ")" expected

900

message

901

Missing ")" in variable reference

902

Extra token ("token") found in USE ARG variable reference; "," or end of instruction expected

Error 47 - Unexpected label

Explanation:

A label was used in the expression being evaluated for an INTERPRET instruction or in an expression entered during interactive debugging.

The associated subcodes are:

001

INTERPRET data must not contain labels; found "label"

Error 48 - Failure in system service

Explanation:

The language processor stopped processing the program because a system service, such as stream input or output or the manipulation of the external data queue, has failed to work correctly.

The associated subcodes are:

001

Failure in system service: service

900

message

Error 49 - Interpretation error

Explanation:

A severe error was detected in the language processor or execution process during internal self-consistency checks.

The associated subcodes are:

001

Interpretation error: unexpected failure initializing the interpreter

900

message

Error 88 - Invalid argument

Explanation:

An argument passed to a method, function, or routine was not valid.

The associated subcodes are:

900

message

901

Missing argument; argument argument is required

902

Argument argument must be a number; found "value"

903

Argument argument must be a whole number; found "value"

904

Argument argument must be zero or a positive whole number; found "value"

905

Argument argument must be a positive whole number; found "value"

906

Argument argument must not exceed limit; found "value"

907

Argument argument must be in the range min to max; found "value"

908

Argument argument must not be a null string

909

Argument argument must have a string value

910

Argument argument is an incorrect pad or character argument; found "value"

911

Argument argument is an incorrect length argument; found "value"

912

Argument argument is an incorrect position argument; found "value"

913

Argument argument must have a single-dimensional array value

914

Argument argument must be of the class class

915

Argument argument could not be converted to type type

916

Argument argument must be one of values; found "value"

917

Argument argument reason

918

Argument argument is not in a valid format; found "value"

919

Argument argument is not in valid pointer format; found "value"

920

Argument argument must have a stem object or stem name value; found "value"

921

Argument argument must be a valid double value; found "value"

922

Too many arguments in invocation; number expected

Error 89 - Variable or message term expected

Explanation:

An instruction was expecting either a single Rexx variable symbol or a message term to be used for an assignment.

The associated subcodes are:

001

The USE instruction requires a comma-separated list of variables or assignment message terms

002

The PARSE was expecting a variable or a message term.

Error 90 - External name not found

Explanation:

An external class, method, or routine (specified with the EXTERNAL option on a ::CLASS, ::METHOD, or ::ROUTINE directive, or as a second argument on a NEW message to the Method class) cannot be found.

The associated subcodes are:

900

message

997

Unable to find external class "class"

998

Unable to find external method "method"

999

Unable to find external routine "routine"

Error 91 - No result object

Explanation:

A message term requires a result object, but the method did not return one.

The associated subcodes are:

900

message

999

Message "message" did not return a result

Error 92 - OLE error

The associated subcodes are:

900

message

901

An unknown OLE error occurred (HRESULT=hresult).

902

Cannot convert OLE VARIANT to REXX object: The conversion of the VARIANT type varianttype into a REXX object failed.

903

Cannot convert REXX object to OLE VARIANT: The conversion of rexx_object into a VARIANT failed.

904

The number of elements provided to the method or property is different from the number of parameters accepted by it.

905

One of the parameters is not a valid VARIANT type.

906

OLE exception: exc_name

907

The requested method does not exist, or you tried to set the value of a read-only property.

908

One of the parameters could not be coerced to the desired type.

909

One or more of the parameters could not be coerced to the desired type. The first parameter with incorrect type is argument index.

910

A required parameter was omitted.

911

Could not create OLE instance.

912

The object invoked has disconnected from its clients.

Error 93 - Incorrect call to method

Explanation:

The specified method, built-in function, or external routine exists, but you used it incorrectly.

The associated subcodes are:

900

message

901

Not enough arguments in method; number expected

902

Too many arguments in invocation of method; number expected

903

Missing argument in method; argument argument is required

904

Method argument argument must be a number; found "value"

905

Method argument argument must be a whole number; found "value"

906

Method argument argument must be zero or a positive whole number; found "value"

907

Method argument argument must be a positive whole number; found "value"

908

Method argument argument must not exceed limit; found "value"

909

Method argument argument must be in the range 0-99; found "value"

911

Method argument argument must not be null

912

Method argument argument must be a hexadecimal string; found "value"

913

Method argument argument must be a valid symbol; found "value"

914

Method argument argument must be one of arguments; found "value"

915

Method option must be one of "arguments"; found "value"

916

Method argument argument must have a string value

917

Method method does not exist

918

Incorrect list index "index"

919

Incorrect array position "position"

921

Argument missing on binary operator

922

Incorrect pad or character argument specified; found "value"

923

Incorrect length argument specified; found "value"

924

Incorrect position argument specified; found "value"

925

Not enough subscripts for array; number expected

926

Too many subscripts for array; number expected

927

Length must be specified to convert a negative value

928

D2X value must be a valid whole number; found "value"

929

D2C value must be a valid whole number; found "value"

931

Incorrect location of whitespace character in position position in hexadecimal string

932

Incorrect location of whitespace character in position position in binary string

933

Only 0-9, a-f, A-F, and whitespace characters are valid in a hexadecimal string; character found "character"

934

Only 0, 1, and whitespace characters are valid in a binary string; character found "character"

935

X2D result is not a valid whole number with NUMERIC DIGITS digits

936

C2D result is not a valid whole number with NUMERIC DIGITS digits

937

No more supplier items available

938

Method argument argument must have a string value

939

Method argument argument must have a single-dimensional array value

941

Exponent "exponent" is too large for number spaces

942

Integer part "integer" is too large for number spaces

943

method method target must be a number; found "value"

944

Method argument argument must be a message object

945

Missing argument in message array; argument argument is required

946

A message array must be a single-dimensional array with 2 elements

947

Method SECTION can be used only on single-dimensional arrays

948

Method argument argument must be of the class class

949

The index and value objects must be the same for PUT to an index-only collection

951

Incorrect alarm time; found "time"

952

Method argument argument is an array and does not contain all string values

953

Method argument argument could not be converted to type type

954

Method "method" can be used only on a single-dimensional array

956

Element element of the array must be a string

957

Element element of the array must be a subclass of the target object

958

Positioning of transient streams is not valid

959

An array cannot contain more than 99,999,999 elements

961

Method argument argument must have a string value or an array value

962

Invalid Base 64 encoded string.

963

Call to unsupported or unimplemented method

964

Application error: message

965

Method name is ABSTRACT and cannot be directly invoked

966

Incorrect queue index "index"

967

NEW method is not supported for the name class

968

Invalid native method signature specification

969

Method argument argument must have a stem object value; found "value"

970

COPY method is not supported for object object

Error 97 - Object method not found

Explanation:

The object does not have a method with the given name. A frequent cause of this error is an uninitialized variable.

The associated subcodes are:

001

Object "object" does not understand message "message"

900

message

Error 98 - Execution error

Explanation:

The language processor detected a specific error during execution. The associated error gives the reason for the error.

The associated subcodes are:

900

message

902

Unable to convert object "object" to a double-float value

903

Unable to load library "name"

904

Abnormal termination occurred

905

Deadlock detected on a guarded method

906

Incorrect object reference detected

907

Object of type "type" was required

908

Metaclass "metaclass" not found

909

Class "class" not found

911

Cyclic inheritance in program "program"

913

Unable to convert object "object" to a single-dimensional array value

914

Unable to convert object "object" to a string value

915

A message object cannot be sent more than one SEND or START message

916

Message object "object" received an error from message "message"

917

Incorrect condition object received for RAISE OBJECT; found "value"

918

No active condition available for PROPAGATE

919

Unable to convert object "object" to a method

935

REPLY can be issued only once per method invocation

936

RETURN cannot return a value after a REPLY

937

EXIT cannot return a value after a REPLY

938

Message search overrides can be used only from methods of the target object

939

Additional information for SYNTAX errors must be a single-dimensional array of values

941

Unknown error number specified on RAISE SYNTAX; found "number"

942

Class "class" must be a MIXINCLASS for INHERIT

943

Class "class" is not a subclass of "class" base class "class"

944

Class "class" cannot inherit from itself, a superclass, or a subclass ("class")

945

Class "class" has not inherited class "class"

946

FORWARD arguments must be a single-dimensional array of values

947

FORWARD can only be issued in an object method invocation

948

Authorization failure: value

951

Concurrency not supported

975

Missing array element at position position

976

Stem object default value cannot be another stem object

978

Unable to load method "name" from library "library"

979

Unable to load routine "name" from library "library"

980

Unable to load native routine "name"

981

Target RexxContext is no longer active

982

Library "name" is not compatible with current interpreter version.

983

Execution thread does not match API thread context.

Error 99 - Translation error

Explanation:

An error was detected in the language syntax. The associated error subcode identifies the syntax error.

The associated subcodes are:

900

message

901

Duplicate ::CLASS directive instruction

902

Duplicate ::METHOD directive instruction

903

Duplicate ::ROUTINE directive instruction

904

Duplicate ::REQUIRES directive instruction

905

CLASS keyword on ::METHOD directive requires a matching ::CLASS directive

907

EXPOSE must be the first instruction executed after a method invocation

908

INTERPRET data must not contain EXPOSE

909

GUARD must be the first instruction executed after EXPOSE or USE

911

GUARD can only be issued in an object method invocation

912

INTERPRET data must not contain GUARD

913

GUARD instruction did not include references to exposed variables

914

INTERPRET data must not contain directive instructions

915

INTERPRET data must not contain USE

916

Unrecognized directive instruction

917

Incorrect external directive name "method"

918

USE ARG requires a "," between variable names; found "token"

919

REPLY can only be issued in an object method invocation

921

Incorrect program line in method source array

922

::REQUIRES directives must appear before other directive instructions

923

INTERPRET data must not contain FORWARD

924

INTERPRET data must not contain REPLY

925

An ATTRIBUTE method name must be a valid variable name; found "name"

926

Incorrect class external; too many parameters

927

"classname" is not a valid metaclass

928

Incorrect class external; class name missing or invalid

929

Incorrect class external; invalid class server "servername"

930

The "..." argument marker can only appear at the end of the argument list

931

Duplicate ::ATTRIBUTE directive instruction

932

Duplicate ::CONSTANT directive instruction