Introduction

When extending Fusion Applications with Visual Builder Studio, your customization is layered on top of Oracle-delivered functionality. One key file that helps manage this relationship is vb-extension.json. This file tracks important metadata, including dependencies on Oracle-delivered extensions and their associated version numbers. As Oracle-delivered extensions are upgraded over time, these versions will change when you build or update customizations to these delivered extensions.

Why vb-extension.json Conflicts Happen

Merge conflicts in vb-extension.json can occur when different branches contain different dependency or version information. This may happen during common lifecycle events such as Fusion Applications upgrades, application of CWBs, or when a VB upgrade (migration) is applied to multiple branches independently.

For users working across feature, release, or integration branches, this is an important file to review carefully. A conflict in vb-extension.json is not just a text conflict; it may affect how your extension aligns with Oracle-delivered base functionality.

Common Conflict Scenarios

You may see conflicts where:

  • The same Oracle-delivered dependency has different version numbers across branches.
  • One branch contains dependencies that are missing from another branch.
  • Multiple branches were updated or migrated separately and now need to be reconciled.

In most cases, the safest default approach is to use the latest version and retain the complete set of dependencies from both conflicting files. This helps ensure your extension remains aligned with the most current Oracle-delivered extension metadata while preserving dependency information introduced by each branch.

How to Resolve the Conflict

When resolving an vb-extension.json conflict, review both sides of the conflict carefully.

Important: Do not simply accept one side without understanding what would be lost.

A practical approach is:

  1. Identify the latest version number for each Oracle-delivered dependency.
  2. Keep the latest version where versions differ.
  3. Include all dependencies listed across both files.
  4. Save the resolved file and continue the merge or pull process.
  5. Validate the workspace after resolution to confirm the extension still opens, builds, and deploys as expected.
  6. Test to ensure all the the functionality and personalizations are still there.

You may see the conflict when examining a Merge Request. If branch protection is not enabled, you may be able to resolve the conflict directly as part of the merge request process. You may also encounter this conflict when editing in a workspace and you pull or merge changes from a remote branch. In this case you can resolve in the workspace.

Summary

vb-extension.json is a small but important file in the Fusion Applications extension lifecycle. It records dependency and version information for Oracle-delivered extensions, so conflicts should be resolved deliberately. When in doubt, prefer the latest delivered extension version and preserve dependencies from both branches. This keeps your customization branch current while reducing the risk of accidentally dropping required dependency metadata.

Example

I have two branches – BR1 and BR2 – that have been worked on by different teams. BR1 is complete and I want to merge to BR2. In this merge request, we see that there are conflicts that must be resolved.

If I go to Resolve Conflicts I see that vb-extension.json is flagged as one of the files that has conflicts. Select the file to see details.

When we examine the file, looking closely we see BR1 has what seems an added dependency on oracle_hcm_benefitsselfserviceUI while BR2 has an added dependency on oracle_hcm_peoplecoreUI. As an aside, while it may seem there are two entries for the benefitsselfserviceUI if you were to look at the sources, that entry was just in different places in the two files.

Because BR1 already contains the benefitsselfserviceUI dependency (and the versions are identical) and BR2 introduces an additional peoplecoreUI dependency, the correct resolution is to preserve both dependencies rather than choosing one branch’s changes exclusively.

Here’s the resolved file: