fullsend-tracking: workspace=bulk-import
fullsend-tracking: root-cause=module-legacy-merge
fullsend-tracking: branch=main
Classification
fix_category: test_fix
Failed Tests
| Test |
Error |
| Verify the Bulk import plugin page |
TimeoutError — heading "Bulk import" not visible (20s) |
| Bulk Import - Verify users without permission cannot access |
TimeoutError — "Permission required" text not visible (10s) |
Root Cause
The /bulk-import frontend route renders a 404 page because the deployed dynamic-plugins configuration is missing module: Legacy on the dynamicRoutes and appIcons entries for the bulk-import frontend plugin.
The bulk-import plugin exports BulkImportPage from its Legacy federated module. Without module: Legacy, scalprum looks for BulkImportPage in the plugin's default module where it does not exist — causing React Router to show a 404 page on the /bulk-import path.
What happens in nightly mode:
- The user-provided
dynamic-plugins.yaml correctly specifies module: Legacy for all sections
- The RHDH 1.11 chart's
dynamic-plugins.default.yaml pre-configures bulk-import with NFS module names (module: Alpha for translationResources, no module for appIcons/dynamicRoutes)
- The deep merge produces a hybrid config:
translationResources.module: Alpha (wrong), appIcons/dynamicRoutes with no module field (wrong)
- scalprum cannot resolve
BulkImportPage → React Router 404
Key evidence:
- Screenshot shows "404 We couldn't find that page" with "Bulk import" sidebar item visible
- Deployed config dump (build-log lines 4140-4160):
module: Legacy stripped from dynamicRoutes and appIcons
- Build log line 4110:
[PluginMetadata] Injecting config for: red-hat-developer-hub-backstage-plugin-bulk-import — metadata injection active in nightly mode despite docs saying "No config injection"
- Plugin loaded successfully (scalprum info log), no errors — the issue is purely in the route/mount configuration
Remediation
Target branch: main
Remove workspaces/bulk-import/e2e-tests/tests/config/dynamic-plugins.yaml entirely. Instead, create a nightly-specific config file workspaces/bulk-import/e2e-tests/tests/config/dynamic-plugins-nightly.yaml that explicitly configures the bulk-import frontend plugin with the correct module: Legacy fields for all sections (dynamicRoutes, appIcons, translationResources). Then update the rhdh.configure() call in workspaces/bulk-import/e2e-tests/tests/specs/bulk-import.spec.ts to use this nightly-specific file when E2E_NIGHTLY_MODE is set.
Alternatively, if the framework supports disablePlugins to prevent the chart's default bulk-import entry from being merged, use that approach to ensure the user-provided module: Legacy fields are not overwritten.
The metadata YAML at workspaces/bulk-import/metadata/red-hat-developer-hub-backstage-plugin-bulk-import.yaml correctly specifies module: Legacy for all sections — use it as reference for the correct configuration.
Artifacts
https://prow.ci.openshift.org/view/gs/test-platform-results/logs/periodic-ci-redhat-developer-rhdh-plugin-export-overlays-main-e2e-ocp-helm-nightly/2083402759867994112
Triggered by #3302
fullsend-tracking: workspace=bulk-import
fullsend-tracking: root-cause=module-legacy-merge
fullsend-tracking: branch=main
Classification
fix_category: test_fix
Failed Tests
Root Cause
The
/bulk-importfrontend route renders a 404 page because the deployed dynamic-plugins configuration is missingmodule: Legacyon thedynamicRoutesandappIconsentries for the bulk-import frontend plugin.The bulk-import plugin exports
BulkImportPagefrom itsLegacyfederated module. Withoutmodule: Legacy, scalprum looks forBulkImportPagein the plugin's default module where it does not exist — causing React Router to show a 404 page on the/bulk-importpath.What happens in nightly mode:
dynamic-plugins.yamlcorrectly specifiesmodule: Legacyfor all sectionsdynamic-plugins.default.yamlpre-configures bulk-import with NFS module names (module: Alphafor translationResources, nomodulefor appIcons/dynamicRoutes)translationResources.module: Alpha(wrong), appIcons/dynamicRoutes with nomodulefield (wrong)BulkImportPage→ React Router 404Key evidence:
module: Legacystripped from dynamicRoutes and appIcons[PluginMetadata] Injecting config for: red-hat-developer-hub-backstage-plugin-bulk-import— metadata injection active in nightly mode despite docs saying "No config injection"Remediation
Target branch:
mainRemove
workspaces/bulk-import/e2e-tests/tests/config/dynamic-plugins.yamlentirely. Instead, create a nightly-specific config fileworkspaces/bulk-import/e2e-tests/tests/config/dynamic-plugins-nightly.yamlthat explicitly configures the bulk-import frontend plugin with the correctmodule: Legacyfields for all sections (dynamicRoutes, appIcons, translationResources). Then update therhdh.configure()call inworkspaces/bulk-import/e2e-tests/tests/specs/bulk-import.spec.tsto use this nightly-specific file whenE2E_NIGHTLY_MODEis set.Alternatively, if the framework supports
disablePluginsto prevent the chart's default bulk-import entry from being merged, use that approach to ensure the user-providedmodule: Legacyfields are not overwritten.The metadata YAML at
workspaces/bulk-import/metadata/red-hat-developer-hub-backstage-plugin-bulk-import.yamlcorrectly specifiesmodule: Legacyfor all sections — use it as reference for the correct configuration.Artifacts
https://prow.ci.openshift.org/view/gs/test-platform-results/logs/periodic-ci-redhat-developer-rhdh-plugin-export-overlays-main-e2e-ocp-helm-nightly/2083402759867994112
Triggered by #3302