Tool Name: Not defined in the current tool contract
Risk Level: High
Execution Mode: Synchronous
Category: Organization App Library
Quick Start (Copy and Use)
Summary: Request another delivery attempt for eligible failed devices of one Organization App Library application release.
Prerequisites: A positive ReleaseId, an existing distribution in Releasing or Rolled out to all devices state, and at least one failed device within your scope. Obtain explicit user approval for the named release before invoking this tool.
Success Criteria: Succeeded is true, ErrorMessage is empty, and ErrorCode is empty. StatusCode alone is not sufficient because a business rejection can return StatusCode 200 with Succeeded false.
What to Do Next: Use List Organization App Library Distribution Status to verify the distribution before and after retry. A positive RetryRequestedDeviceCount is the number selected for another attempt.
Minimal Request Example:
{
"ReleaseId": 1
}
Minimal Response Example:
{
"RetryRequestedDeviceCount": 0,
"Succeeded": true,
"ErrorCode": "",
"Hint": "",
"Retryable": false,
"OriginalStatusCode": 200,
"StatusCode": 200,
"ErrorMessage": ""
}
Recipes (Common Recipes)
Recipe 1: Inspect Before Retry
When to use: Before any write, confirm the named release has relevant Failed records.
{
"ReleaseId": 1,
"SortBy": "status",
"SortOrder": "desc",
"PageIndex": 1,
"PageSize": 20
}
Use this request with List Organization App Library Distribution Status, not with this retry tool.
Recipe 2: Request a Retry After Explicit Approval
When to use: The release is eligible and the user explicitly approved retrying that named release.
{
"ReleaseId": 1
}
No Confirm or Reason input is defined. The current workflow does not enforce confirmation; explicit approval is still required before this high-risk write.
Recipe 3: Verify After Retry
When to use: Succeeded is true, or a timeout/network failure leaves the write outcome uncertain.
{
"ReleaseId": 1,
"SortBy": "status",
"SortOrder": "desc",
"PageIndex": 1,
"PageSize": 20
}
Use this request with List Organization App Library Distribution Status. No polling interval is defined by the current contract.
1. Overview
1.1 Description
Retries delivery for the failed-device portion of one Organization App Library application release. It does not target a caller-supplied device list.
1.2 When to Use
- Distribution status shows one or more failed devices in your scope.
- The release already has a distribution and is Releasing or Rolled out to all devices.
- The user explicitly approves retrying the named release.
1.3 Execution Mode and Response
This is a synchronous write that returns acceptance information, not final device completion. Succeeded: true means the upstream accepted a valid retry receipt. Use distribution status to inspect device outcomes afterward.
1.4 Prerequisites
| Condition | Description |
|---|---|
| Release ID | Use a positive latest_release.release_id from an Organization App Library application tool. |
| Eligible failures | At least one failed distribution record must be within your manageable device scope. In-progress-only or success-only releases are not retryable. |
| Release state | The release must already have a distribution and be Releasing or Rolled out to all devices. |
| Explicit approval | Obtain explicit user approval for the named release before invoking the tool. |
1.5 Prerequisite Tools
| Tool | Purpose |
|---|---|
| List Organization App Library Applications | Obtain latest_release.release_id through simple browse controls. |
| Search Organization App Library Applications | Obtain latest_release.release_id through structured filtering. |
| List Organization App Library Distribution Status | Confirm failed-device eligibility before retry and verify the result afterward. |
1.6 Similar Tools
This tool does not start a general rollout and does not retry Processing, Not Installed, or already successful records. Use List Organization App Library Distribution Status when inspection rather than a retry is required.
2. Inputs
2.1 Parameter List
| Parameter | Type | Required | Default | Description |
|---|---|---|---|---|
| ReleaseId | number | Yes | - | Positive application release identifier whose eligible failed devices will be retried. |
2.2 Parameter Details
`ReleaseId`
Pass a positive latest_release.release_id returned by List Organization App Library Applications or Search Organization App Library Applications. It selects one release; there is no input for a group, device list, confirmation flag, or reason.
Before sending the request, query List Organization App Library Distribution Status for the same ID and verify the release and failed-device scope. After the request, query it again before deciding whether another retry is necessary.
2.3 Parameter Combination Logic
The only request parameter is ReleaseId. Retry selection is determined by eligible failed records within your device scope. This action is not idempotent: another call can start another attempt, so do not repeat it after a timeout, network error, rate limit, or other uncertain write outcome until status has been checked.
3. Outputs
3.1 Response Examples
The Quick Start response is a successful receipt with no selected devices. A successful empty receipt is distinct from a business rejection; use Succeeded, ErrorCode, and ErrorMessage together.
Release not retryable:
{
"RetryRequestedDeviceCount": 0,
"Succeeded": false,
"ErrorCode": "RELEASE_NOT_RETRYABLE",
"Hint": "Retry only when this release is Releasing or Rolled out and distribution status shows at least one failed device you can manage; in-progress-only or success-only releases cannot be retried.",
"Retryable": false,
"OriginalStatusCode": 200,
"StatusCode": 200,
"ErrorMessage": "This release cannot be retried in its current distribution state."
}
3.2 Field Descriptions
| Field | Type | Description |
|---|---|---|
| RetryRequestedDeviceCount | number | Eligible devices selected for another delivery attempt. A successful receipt can contain 0. |
| Succeeded | bool | True only when the upstream accepted a valid retry receipt. |
| ErrorCode | string | Stable failure identity; empty on success. |
| Hint | string | Recommended next action after a failure; empty on success. |
| Retryable | bool | Whether the same request may be attempted again after a failure. |
| OriginalStatusCode | number | Upstream HTTP status; 0 means no response was received. |
| StatusCode | number | Tool status; it does not independently determine business success. |
| ErrorMessage | string | Empty when Succeeded is true; otherwise failure text. |
3.3 Status and ErrorCode Values
| Field | Value | Meaning |
|---|---|---|
| StatusCode | -1 | Local parameter validation failed. |
| StatusCode | 200 | A completed call; inspect Succeeded, ErrorCode, and ErrorMessage. |
| StatusCode | 500 | Upstream, system, network, or uncertain-write failure. |
| ErrorCode | AUTHENTICATION_FAILED | Credential authentication failed. |
| ErrorCode | INVALID_REQUEST | Invalid request or an out-of-scope release. |
| ErrorCode | RELEASE_NOT_RETRYABLE | Current distribution state does not permit retry. |
| ErrorCode | AMS_PERMISSION_DENIED | Organization App Library access is denied. |
| ErrorCode | AMS_FEATURE_UNAVAILABLE | Organization App Library is unavailable for the subscription. |
| ErrorCode | RATE_LIMITED | Upstream rate limit was reached. |
| ErrorCode | UNKNOWN_UPSTREAM_ERROR | Unrecognized upstream business error. |
| ErrorCode | UPSTREAM_HTTP_ERROR | Upstream returned a non-200 HTTP response. |
| ErrorCode | UPSTREAM_RESPONSE_INVALID | Upstream response or receipt was unusable. |
| ErrorCode | WRITE_OUTCOME_UNKNOWN | Timeout or network failure left write acceptance uncertain. |
| ErrorCode | INTERNAL_ERROR | Unexpected tool error. |
3.4 Completion Tracking
There is no completion ID or polling interval defined. Re-query List Organization App Library Distribution Status for the same ReleaseId; Processing is not final, while Success and Failed are final per-device outcomes.
4. Examples
4.1 Basic Example: Retry One Eligible Release
{
"ReleaseId": 1
}
Invoke only after explicit approval and a status check confirms eligible failed records.
4.2 Advanced Example: Verify an Uncertain Write
If the retry returns WRITE_OUTCOME_UNKNOWN, do not submit the same request again immediately. Query the same release:
{
"ReleaseId": 1,
"SortBy": "status",
"SortOrder": "desc",
"PageIndex": 1,
"PageSize": 20
}
Use that request with List Organization App Library Distribution Status to determine the current distribution state.
4.3 Error Example: Invalid Release ID
{
"ReleaseId": 0
}
This returns Succeeded: false, ErrorCode: INVALID_REQUEST, StatusCode: -1, and ErrorMessage: ReleaseId must be a positive integer.
5. Error Handling
| ErrorCode or condition | Visible result | Action |
|---|---|---|
| Invalid or missing ReleaseId | INVALID_REQUEST, StatusCode: -1 | Supply a positive release ID. |
| RELEASE_NOT_RETRYABLE | StatusCode: 200, Succeeded: false | Check status; retry only eligible failed records for a release in the supported state. |
| AUTHENTICATION_FAILED | Succeeded: false | Refresh or re-authorize the credential. |
| AMS_PERMISSION_DENIED | Succeeded: false | Request Organization App Library read/write permission. |
| AMS_FEATURE_UNAVAILABLE | Succeeded: false | Renew or upgrade the subscription. |
| RATE_LIMITED from a business rejection | Retryable: true | Wait 10-30 seconds, verify status, then retry only if no retry was accepted. |
| HTTP 429, timeout, or network error | Retryable: false; possibly WRITE_OUTCOME_UNKNOWN | Verify distribution status before another attempt. |
| Invalid upstream response or receipt | UPSTREAM_RESPONSE_INVALID, Retryable: false | Verify status and report the response-shape issue. |
6. Best Practices
6.1 Performance
Read distribution status first and keep scope focused. Retry is release-wide within the eligible device scope; it cannot be narrowed by an input device list.
6.2 Safety
This is a high-risk write. The workflow has no Confirm or Reason parameter and does not enforce confirmation, so explicit user approval for the named release is required before invocation.
6.3 Idempotency
Not idempotent. Another call can start another attempt. After any uncertain result, verify distribution status instead of blindly repeating the request.
7. Related Tools
| Tool | Use |
|---|---|
| List Organization App Library Applications | Obtain latest_release.release_id through simple browse controls. |
| Search Organization App Library Applications | Obtain latest_release.release_id through structured filtering. |
| List Organization App Library Distribution Status | Verify failed-device eligibility before retry and inspect outcomes afterward. |
8. Tool Chains
8.1 Retry Failed Delivery Safely
List Organization App Library Applications or Search Organization App Library Applications -> List Organization App Library Distribution Status -> Retry Organization App Library Distribution -> List Organization App Library Distribution Status
- Obtain latest_release.release_id for the intended application.
- Inspect the release's status and confirm eligible Failed records in scope.
- Obtain explicit user approval for the named release, then call this retry tool.
- Re-query distribution status before deciding whether any further retry is appropriate.
Leave a Reply.