| Previous | Next |
| OSS_NULL_FCN | OSS_UNAVAIL_ENCRULES |
OSS_BAD_ENCRULES
OSS_BAD_ENCRULES (0x80093016) is an OSS ASN.1 runtime result for invalid encoding-rule selector in runtime control state. The OssControl object contains an unknown encoding-rules value, normally because the caller wrote an unsupported value or the object was corrupted. Because rule value immediately before the call is central to this condition, Microsoft’s HRESULT range and the OSS Nokalva return-code documentation should be read together. Start the investigation by recording API used to set BER, DER, PER, or another mode, then separate the encoded value from generated artifacts, call arguments, and the runtime package actually loaded by the process.
What the return code narrows down
At the invalid encoding-rule selector in runtime control state boundary, capture the first OSS function returning the value and note whether the operation was encode, decode, copy, compare, constraint validation, or trace setup. Preserve the selected PDU, encoding rules, and memory writes to the control object; otherwise an outer certificate or security wrapper may hide the useful codec result behind a generic failure.
Build a useful capture
- rule value immediately before the call
- API used to set BER, DER, PER, or another mode
- memory writes to the control object
Neighboring statuses: the result
UNAVAIL_ENCRULES names a recognized rule whose implementation is absent; BAD_ENCRULES means the selector itself is not valid.
Test one variable at a time
- set the rule through the documented API
- initialize a fresh context with default rules
- assert the selected rule against a closed enum
Instrumentation
Where rule value immediately before the call can expose sensitive content, a hash plus a bounded structural excerpt is safer than the complete payload. Use API used to set BER, DER, PER, or another mode together with OSS module paths and versions logged once per process so packaging differences can be correlated without flooding normal diagnostics.
Verify the repair: the result
Use documented setters and protect the context from unsynchronized or out-of-bounds writes.
Technical references
Looking for a different code? Search another status or error code.