---
title: Generic exception rules
description: Connectors continue to be released outside the IDM release. For the latest documentation, refer to the OpenICF documentation.
component: pingidm
version: 7.2
page_id: pingidm:connector-dev-guide:generic-exception-rules
canonical_url: https://docs.pingidentity.com/pingidm/7.2/connector-dev-guide/generic-exception-rules.html
section_ids:
  framework-api-level-rules: Framework (API-level) exception rules
  framework-spi-level-rules: Connector (SPI Level) Exception Rules
---

# Generic exception rules

|   |                                                                                                                                                                                   |
| - | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
|   | Connectors continue to be released outside the IDM release. For the latest documentation, refer to the [OpenICF documentation](https://docs.pingidentity.com/openicf/index.html). |

The generic exception rules are common to all API- or SPI-level operations and are described in the following sections.

## Framework (API-level) exception rules

* IllegalArgumentException or NullPointerException

  Thrown when the ObjectClass is null or the name is blank.

* OperationTimeoutException

  Thrown when the operation timed out.

* ConnectionFailedException

  Thrown if any problem occurs with the connector server connection.

* UnsupportedOperationException

  Thrown if the connector does not implement the required interface.

* ConnectorIOException

  Thrown if the connector failed to initialize a remote connection due to a SocketException.

* ConnectorException

  Thrown in the following situations:

  * The connector failed to initiate the remote connection due to a `SocketException`.

  * An unexpected request was sent to the remote connector server.

  * An unexpected response was received from the remote connector server.

* InvalidCredentialException

  Thrown if the remote framework key is invalid.

The following exceptions are thrown specifically in the context of a poolable connector.

* ConnectorException

  Thrown if the pool has no available connectors after the `maxWait` time has elapsed.

* IllegalStateException

  Thrown if the object pool has already shut down.

## Connector (SPI Level) Exception Rules

* InvalidAttributeValueException

  Thrown when single-valued attribute has multiple values.

* IllegalArgumentException

  Thrown when the value of the `__PASSWORD__` or the `__CURRENT_PASSWORD__` attribute is not a `GuardedString`.

* IllegalStateException

  Thrown when the `Attribute` name is blank.

* PermissionDeniedException

  Thrown when the target resource will not allow a specific operation to be performed. An instance of the `PermissionDeniedException` generally describes a native error that is returned by (or wraps a native exception that is thrown by) the target resource.

* ConnectorIOException, ConnectionBrokenException, ConnectionFailedException

  Thrown when any problem occurs with the connection to the target resource.

* PreconditionFailedException

  Thrown when the current version of the resource object does not match the version provided by the connector.

* PreconditionRequiredException

  Thrown when a resource object requires a version, but no version was supplied in the `getRevision` operation.
