Batch Process Resume ETL Failed Daily API

The command you send must match the type of ETL failure The batch process can only be resumed when it has stopped in a failed state because of its ETL (extract, transform, load) step, and the command you send must match that failure. A mismatched command returns 400 Bad Request with Cannot resume daily — it is not in correct state for resume.


The ResumeETLFailedDaily endpoint lets you resume your tenant's batch process after it has stopped due to an ETL failure, without waiting for manual intervention. Depending on the command you send, Optimove either retries the failed ETL action or skips it, so the rest of the batch process can complete.

Unlike TriggerDaily, this endpoint does not start a new run — it continues the existing failed run from the point of failure. The endpoint is protected by API key authentication, role-based authorization, and per-tenant rate limiting.

For triggering a batch process that has not yet run today, see the Batch Process Trigger Daily API guide.


Beta This capability is in Beta and must be enabled for your tenant before you can use it.


Using the ResumeETLFailedDaily Endpoint


Endpoint

POST <BASE_URL>/BatchProcessAPI/ResumeETLFailedDaily

Replace <BASE_URL> with the base URL for your region.

For the regional base URLs (hostnames), see General Information.


Authentication

API key authentication is required. Include your key in the request header:

HeaderDescription
X-API-KEYIdentifies the calling tenant and carries its role and permission claims.

If the key is missing or invalid, the endpoint returns 401 Unauthorized.

Authorization

Access is controlled by the role attached to the API key. Callers with the 3rdParty role are explicitly blocked.

RoleAccess
ApiRole (admin)Allowed
TransactionalMailAllowed
3rdPartyBlocked — returns 401 Unauthorized

Rate Limiting

A per-tenant rate limit applies to all API-key-authenticated requests:

  • Window: 600 seconds (10 minutes).
  • Only one request per tenant is allowed within the window.
  • Exceeding the limit returns 429 Too Many Requests. Wait for the current 10-minute window to expire before retrying.

Request Body Parameters

Content-Type: application/json

The request body must be minified (compact) JSON, with no spaces. A request that is not minified will fail.

{"CommandName":"ResumeTask"}

Here's a breakdown of the request body parameters:

ParameterTypeMandatory/OptionalDescriptionHow it Affects Results
CommandNameStringMandatoryThe name of the resume command to execute. Supported values: ResumeTask, ResumeSkipETLTask.Determines how the batch process is resumed — the failed ETL action is either retried or skipped.

CommandName is the only parameter this endpoint accepts.

Unlike TriggerDaily, this endpoint does not accept WaitTimeForValidationSeconds. The validation wait is fixed at 25 seconds server-side — there is no need to send it, and no way to change it.

Choosing a Command

CommandNameWhat it doesWhen to use it
ResumeTaskResumes the batch process from the failed ETL action and runs that action again. Nothing is skipped.The failure was caused by a temporary data-availability issue — for example, expected data files were missing or your data source was not ready — and the issue has since been resolved, so the step can now succeed on retry.
ResumeSkipETLTaskResumes the batch process and skips the failed ETL action, so the rest of the run continues without it.The ETL failed with a Data Not Updated error and you accept completing the run without that step.

Not sure which command applies? Contact your Optimove representative. A command that does not match the failure type is rejected, and the rejected call still consumes your 10-minute rate-limit window.


Response Codes

Status CodeDescription
200 OKBatch process was resumed successfully (empty body).
400 Bad RequestValidation failed. The response body contains a plain-text error message describing the reason.
401 UnauthorizedInvalid or missing API key, or the caller's role is not permitted.
403 ForbiddenThe endpoint is not enabled for your tenant, or the authentication token has expired.
429 Too Many RequestsRate limit exceeded. Wait for the current 10-minute window to expire before retrying.
500 Internal Server ErrorAn unexpected error occurred.
504 Gateway TimeoutThe request exceeded the maximum timeout of 30 seconds.

Validation Rules

Before resuming the batch process, the endpoint checks the following preconditions. When a condition is not met, it returns 400 Bad Request with the corresponding plain-text error message.

ConditionError Message
CommandName is missing or not recognizedCannot resume daily — CommandName not found
Batch task not found for tenantCannot resume daily — task not found
Task is not in a resumable state — it has not failed, or the failure does not match the command sentCannot resume daily — it is not in correct state for resume
Task schedule is misconfiguredCannot resume daily — task configured not correctly
Task failed to resume within the 25-second validation waitCannot resume daily — validation for Task resuming is failed

Examples


Example Request

POST <BASE_URL>/BatchProcessAPI/ResumeETLFailedDaily HTTP/1.1
X-API-KEY: <YOUR_API_KEY>
Content-Type: application/json

{"CommandName":"ResumeTask"}

Example Response (Success)

HTTP/1.1 200 OK
Content-Type: text/plain; charset=utf-8

(empty body)

Example Response (Validation Error)

HTTP/1.1 400 Bad Request
Content-Type: text/plain; charset=utf-8

Cannot resume daily — it is not in correct state for resume

Notes & Best Practices

  • Match the command to the failure. Use ResumeTask when the underlying data issue has been fixed and the ETL step should run again. Use ResumeSkipETLTask when the ETL failed with a Data Not Updated error and the run should continue with the ETL action skipped. A command that does not match the failure is rejected.
  • A rejected command costs you the rate-limit window. Only one request per tenant is accepted per 600-second window, and a 400 still counts against it. Confirm the failure type before you call, rather than trying one command and then the other.
  • CommandName is the only parameter. Do not send WaitTimeForValidationSeconds — the 25-second validation wait is fixed server-side.
  • Minify the payload. The request body must contain no spaces: {"CommandName":"ResumeTask"}.
  • Empty body on success. On success, the response body is empty (200 OK). Only validation failures return a plain-text message body.
  • The call triggers the resume; it does not wait for the run to finish. A 200 OK confirms the resume started, not that the batch process completed. Monitor the run through your usual Optimove monitoring channels.
  • Not enabled by default. Contact your Optimove representative to confirm whether this endpoint is enabled for your tenant.

To trigger a batch process that has not yet run today rather than resume a failed one, see the Batch Process Trigger Daily API guide.



Did this page help you?