Extension Impact Guard
Cloud BAdI, key-user extensibility, and upgrade stability analyzer
Content reviewed September 26, 2026
- Engine
- EXTENSION_IMPACT_GUARD
- Domain
- Output & Extensibility
- Version
- 2.0.0
- Target releases
- S4H_2022, S4H_2023, S4HANA_CLOUD_2402, S4HANA_CLOUD_2408
- Accepted formats
- JSON
Input contract
Extension inventory JSON: {'extensions': [{object_name, object_type, status, dependencies, data_type, length, software_collection}], 'dependencies': {object: [consumers]}, 'target_object': '…', 'action': 'DELETE'|'MODIFY'|'CHANGE_TYPE'|'CHANGE_LENGTH'|'TRANSPORT', 'change': {new_type, new_length}}. Deletion / change / transport verdicts require an explicit target_object.
Required input
- extensions or dependencies/graph adjacency map
- target_object for deletion/impact verdicts
- JSON only: ABAP / XML sources are not parsed into a dependency graph by this engine.
Finding codes
Finding codes (9)
EXT_CYCLIC_DEPENDENCY_DETECTEDDefault severity: BlockerCategory: GRAPH_INTEGRITYCyclic extension dependency
Remediation: Break the cycle: move shared fields into a separate interface CDS view (or extend the released C1 view once), let the consumers depend on it one-directionally, and transport the collection in dependency order.
EXT_DELETE_BLOCKED_ACTIVE_CONSUMERSDefault severity: CriticalCategory: DELETION_SAFETYDeletion blocked by active consumers
Remediation: Remove or re-point every active consumer (form templates, CDS views, APIs, app variants) before deleting the object in 'Custom Fields' / 'Custom CDS Views'; delete consumers first, then the object.
EXT_TYPE_LENGTH_CHANGE_BREAKS_CONSUMERSDefault severity: CriticalCategory: CHANGE_IMPACTType / length change breaks consumers
Remediation: The listed consumers carry the value with a type or length the change no longer fits (type conflict or truncation). Adapt each consumer (CDS element, form field, API property) to the new type / length in the same software collection, then rerun the listed regression tests before transporting.
EXT_HIGH_BLAST_RADIUS_WARNINGDefault severity: MajorCategory: CHANGE_IMPACTHigh change blast radius
Remediation: Plan regression tests for every impacted form, CDS view and API; gate the transport with a test sign-off.
EXT_MODIFICATION_BREAKING_CONSUMERSDefault severity: MajorCategory: CHANGE_IMPACTModification impacts downstream consumers
Remediation: Review field mappings of all downstream consumers and adapt them in the same software collection before transporting the modification.
EXT_TARGET_OBJECT_NOT_FOUNDDefault severity: MajorCategory: GRAPH_INTEGRITYRequested extension object absent from the dependency graph
Remediation: Check the technical name of 'target_object' (case-sensitive) and re-export the extension inventory so it contains the object and all its consumers; no impact verdict was produced.
EXT_TRANSPORT_DEPENDENCY_MISSINGDefault severity: MajorCategory: TRANSPORT_COMPLETENESSCustom dependency not transported with the object
Remediation: Add the listed custom dependency to the same software collection (or transport) as the object, or make sure its collection is imported first; otherwise the import into the target system fails activation.
EXT_TYPE_CHANGE_REQUIRES_NEW_FIELDDefault severity: MajorCategory: CHANGE_IMPACTPublished key-user field cannot change type or shrink in place
Remediation: A published key-user custom field keeps its type, and its length cannot be reduced. Create a new custom field with the target type / length, migrate the data and re-point all consumers, then retire the old field.
EXT_SAFE_TO_DELETEDefault severity: InfoCategory: DELETION_SAFETYNo active consumers in the supplied graph
Remediation: Deletion is safe with respect to the supplied inventory only; confirm the inventory is complete for the target system, then delete via Key-User Extensibility and transport the deletion.
Input validation codes (5)
EXT_ARCHIVE_REJECTEDDefault severity: MajorCategory: INPUT_VALIDATIONArchive rejected by ingestion safety limits
Remediation: The archive exceeded the 100:1 expansion ratio, 500 MB total size, entry-count or 2-level nesting limit, or contained path traversal / encrypted members. Upload a flat, unencrypted archive of the export files. No verdict was produced. Re-export the artifact in one of the formats accepted by Extension Impact Guard (JSON) and re-run the analysis.
EXT_INVALID_INPUTDefault severity: MajorCategory: INPUT_VALIDATIONArtifact does not match the engine input contract
Remediation: Provide the artifact type documented for this engine; unrelated or structurally invalid documents are rejected. No verdict was produced. Re-export the artifact in one of the formats accepted by Extension Impact Guard (JSON) and re-run the analysis.
EXT_PARSE_ERRORDefault severity: MajorCategory: INPUT_VALIDATIONArtifact could not be parsed
Remediation: Fix the syntax error at the reported line/column (or re-export the file unmodified from SAP). No verdict was produced. Re-export the artifact in one of the formats accepted by Extension Impact Guard (JSON) and re-run the analysis.
EXT_PAYLOAD_TOO_LARGEDefault severity: MajorCategory: INPUT_VALIDATIONArtifact exceeds the size limit
Remediation: Split the export (e.g. per package, company code or date range) so each upload stays under the service payload limit. No verdict was produced. Re-export the artifact in one of the formats accepted by Extension Impact Guard (JSON) and re-run the analysis.
EXT_INSUFFICIENT_INPUTDefault severity: InfoCategory: INPUT_VALIDATIONRequired input missing
Remediation: Supply every input the engine's contract marks as required (see the engine catalog entry). No verdict was produced. Re-export the artifact in one of the formats accepted by Extension Impact Guard (JSON) and re-run the analysis.