Skip to main content

erInterfaceNotSupported

erInterfaceNotSupported = 23

Example

function IsUnsupportedInterfaceConversion(const ErrorType: TIFException): Boolean;
begin
Result := ErrorType = erInterfaceNotSupported;
end;

Usage

erInterfaceNotSupported indicates that Velox scripting could not obtain the requested interface while converting an object value.

Formatting and exception state

ExceptionToString ignores Param and returns Interface not supported. The automatic producer does not save the requested GUID, interface name or object class, so those details must come from the failing declaration and call context.

Additional Technical Info

erInterfaceNotSupported is member ordinal 23 of TIFException, the script-visible declaration that is kept in exact ordinal alignment with PascalScript's runtime TPSError. Its sidebar position 23 is alphabetical navigation metadata and is not its enumeration value.

erInterfaceNotSupported is emitted by the runtime value-conversion path when an object is being assigned/converted to an interface and TObject.GetInterface cannot return the destination interface. It is about that specific object-to-interface conversion, not a general “feature unavailable” status. The current condition combines a nil source object and a non-nil object whose interface table does not contain the requested GUID. Consequently, this path can report erInterfaceNotSupported for a nil object instead of erNullPointerException. Other nil receiver paths use the latter category.

Behavior, recovery and quirks

  • GetInterface returns False instead of raising when the interface is absent; Velox scripting converts that false result into VM error state.
  • Do not interpret this category as an authorisation decision or as proof that every instance of the class lacks the interface. It describes the exact value conversion that failed.
  • Check object creation, nilability, the declared interface GUID and the actual runtime class/import configuration.
  • Exception transfer is not a database, dataset, filesystem or external-system transaction. Any earlier side effect remains unless the called API or surrounding Flow provides an explicit rollback contract.
  • Do not persist the numeric ordinal as an integration contract. Store the member name, formatted message, parameter and relevant procedure/position with the Velox version.

Related Code Library entries

External references

Created 2026-07-15