Skip to content
ERP Preflight

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_INTEGRITY

    Cyclic 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_SAFETY

    Deletion 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_IMPACT

    Type / 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_IMPACT

    High 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_IMPACT

    Modification 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_INTEGRITY

    Requested 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_COMPLETENESS

    Custom 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_IMPACT

    Published 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_SAFETY

    No 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_VALIDATION

    Archive 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_VALIDATION

    Artifact 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_VALIDATION

    Artifact 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_VALIDATION

    Artifact 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_VALIDATION

    Required 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.

Back to the documentation
Extension Impact Guard — ERP Preflight Docs