Skip to content

EDSC-4710: Fixes granules requests with no collection concept id - #2081

Merged
macrouch merged 15 commits into
mainfrom
EDSC-4710
Aug 21, 2026
Merged

EDSC-4710: Fixes granules requests with no collection concept id#2081
macrouch merged 15 commits into
mainfrom
EDSC-4710

Conversation

@macrouch

@macrouch macrouch commented Aug 20, 2026

Copy link
Copy Markdown
Contributor

Overview

What is the feature?

Fixes granules requests with no collection concept id. When getGranules is called with no collectionConceptId, return without fetching granules because that is an invalid request to CMR

Additionally I think I fixed the playwright flakiness. I blocked tophat from loading in playwright tests, and I ensured that the tophat container remained the same size. After that I made a few other minor playwright changes and retook every screenshot. I got two runs in a row with no failures.

What areas of the application does this impact?

Granules

Testing

Reproduction steps

From the collection results page, click on a collection to view granules (or to view collection details), then immediate press the back button (either browser back or "Search Results (# Collections)" link.

Ensure that the red error banner is not displayed

Checklist

  • I have added automated tests that prove my fix is effective or that my feature works
  • New and existing unit tests pass locally with my changes
  • I have performed a self-review of my own code
  • I have commented my code, particularly in hard-to-understand areas
  • I have made corresponding changes to the documentation
  • I have run npm audit fix and made note of any changes in this PR
  • My changes generate no new warnings

@github-actions

github-actions Bot commented Aug 20, 2026

Copy link
Copy Markdown

Bundle Size Comparison

Full build details

> earthdata-search@1.0.0 build
> vite build

vite v6.4.3 building for production...
transforming...
✓ 4031 modules transformed.
rendering chunks...
computing gzip size...
static/dist/assets/logo-Bl7CmmEi.webp                                                      0.98 kB
static/dist/assets/logo-CZz0VEVL.webp                                                      1.14 kB
static/dist/assets/logo-Cycj4Zl7.webp                                                      1.33 kB
static/dist/assets/logo-U_2b2F1P.webp                                                      1.37 kB
static/dist/assets/logo-DrQyzv8O.webp                                                      1.54 kB
static/dist/assets/logo-BtXPiD8D.webp                                                      1.81 kB
static/dist/assets/logo-CBoC93bb.webp                                                      2.16 kB
static/dist/assets/logo-DjzD1LMz.webp                                                      2.39 kB
static/dist/assets/orange-bars-circle-D7AglAGM.webp                                        2.77 kB
static/dist/assets/logo-mTUaHBfB.webp                                                      3.11 kB
static/dist/assets/blue-bars-circle-BoIdEwIS.webp                                          3.67 kB
static/dist/assets/logo-BRHnty9h.webp                                                      4.09 kB
static/dist/assets/cryosphere-icon-DSWEvPIt.svg                                            4.11 kB │ gzip:   1.64 kB
static/dist/assets/logo-DPcWY5XI.webp                                                      4.25 kB
static/dist/assets/logo-BI7QOwpp.webp                                                      4.72 kB
static/dist/assets/logo-CjKnSDvE.webp                                                      7.06 kB
static/dist/index.html                                                                    13.24 kB │ gzip:   3.10 kB
static/dist/assets/plate_carree_earth_scaled-RfqGhO39.png                                 18.14 kB
static/dist/assets/tour-video-thumbnail-BxsZeqvq.webp                                     18.84 kB
static/dist/assets/plate_carree_earth_scaled@2x-BIj0Wstc.png                              45.03 kB
static/dist/assets/image-unavailable-CcXgOtQr.svg                                         52.20 kB │ gzip:  20.77 kB
static/dist/assets/earthdata-search-og-image-Cs5RILJ1.webp                                92.82 kB
static/dist/assets/MODIS-Terra-Swirling-Clouds-In-Atlantic-800x600@2x-DdSR_KXb.webp      132.70 kB
static/dist/assets/MODIS-Terra-Swirling-Clouds-In-Atlantic-2560x1440@2x-CZbMhKXi.webp    224.17 kB
static/dist/assets/MODIS-Terra-Swirling-Clouds-In-Atlantic-800x600@2x-DFWWupvf.webp      381.18 kB
static/dist/assets/MODIS-Terra-Swirling-Clouds-In-Atlantic-2560x1440@2x-BwDp59vN.webp    464.37 kB
static/dist/assets/MODIS-Terra-Swirling-Clouds-In-Atlantic-2560x1440@2x-CeYlmMCD.webp    737.44 kB
static/dist/assets/MODIS-Terra-Swirling-Clouds-In-Atlantic-2560x1440@2x-tQ4uTIyn.webp  1,255.87 kB
static/dist/assets/MODIS-Terra-Swirling-Clouds-In-Atlantic-2560x1440@2x-BqbXRJmQ.webp  1,516.81 kB
static/dist/assets/AdminRetrieval-nNSujMnn.css                                             0.06 kB │ gzip:   0.08 kB
static/dist/assets/AdminPreferencesMetrics-GkGryAtC.css                                    0.10 kB │ gzip:   0.11 kB
static/dist/assets/ChunkedOrderModal-DIli9vpQ.css                                          0.11 kB │ gzip:   0.10 kB
static/dist/assets/TooManyPointsModal-D8ufPyjz.css                                         0.14 kB │ gzip:   0.12 kB
static/dist/assets/AdminRetrievalsMetrics-CT7bgXZt.css                                     0.22 kB │ gzip:   0.13 kB
static/dist/assets/AdminPage-D19229XC.css                                                  0.23 kB │ gzip:   0.16 kB
static/dist/assets/ContactInfo-C7Pr11wu.css                                                0.28 kB │ gzip:   0.18 kB
static/dist/assets/useDeleteSubscription-YPccXDF3.css                                      0.46 kB │ gzip:   0.23 kB
static/dist/assets/ShapefileDropzoneContainer-BG7JE7Dj.css                                 0.53 kB │ gzip:   0.26 kB
static/dist/assets/GranuleFiltersContainer-CfwvM6Mp.css                                    0.59 kB │ gzip:   0.27 kB
static/dist/assets/ShapefileUploadModal-CMzmPyoZ.css                                       0.66 kB │ gzip:   0.32 kB
static/dist/assets/Preferences-DGkx-xES.css                                                0.68 kB │ gzip:   0.24 kB
static/dist/assets/Skeleton-DtMOdDsM.css                                                   0.88 kB │ gzip:   0.34 kB
static/dist/assets/TextWindowActions-aNefZur7.css                                          0.91 kB │ gzip:   0.38 kB
static/dist/assets/RelatedCollection-BaShQZdF.css                                          0.93 kB │ gzip:   0.40 kB
static/dist/assets/CollectionDetailsHighlights-CHDYEfjF.css                                1.24 kB │ gzip:   0.44 kB
static/dist/assets/GranuleResultsHighlights-BIY0O9bb.css                                   1.24 kB │ gzip:   0.41 kB
static/dist/assets/Subscriptions-CYrzsucf.css                                              1.26 kB │ gzip:   0.40 kB
static/dist/assets/EDSCModalContainer-D_JXXJBf.css                                         1.77 kB │ gzip:   0.59 kB
static/dist/assets/AdminProjects-CZeT2VXI.css                                              1.98 kB │ gzip:   0.46 kB
static/dist/assets/AdminRetrievals-DIdJ2AD-.css                                            2.02 kB │ gzip:   0.46 kB
static/dist/assets/DownloadHistory-C2TrZbdc.css                                            2.05 kB │ gzip:   0.47 kB
static/dist/assets/DeprecatedParameterModal-nutVvbLm.css                                   2.12 kB │ gzip:   0.93 kB
static/dist/assets/Projects-5m-RoZO0.css                                                   2.13 kB │ gzip:   0.51 kB
static/dist/assets/EchoForm-VVUehB8V.css                                                   3.47 kB │ gzip:   1.06 kB
static/dist/assets/SearchTour-AJompJPK.css                                                 4.82 kB │ gzip:   1.22 kB
static/dist/assets/index-BOElThXL.css                                                      6.47 kB │ gzip:   1.24 kB
static/dist/assets/OrderStatus-qyLNmnfS.css                                                8.49 kB │ gzip:   1.93 kB
static/dist/assets/createSpatialDisplay-CiT4b-tQ.css                                      10.62 kB │ gzip:   2.41 kB
static/dist/assets/MapContainer-GerI1QoD.css                                              17.00 kB │ gzip:   5.89 kB
static/dist/assets/Project-RbLZgqcX.css                                                   20.04 kB │ gzip:   4.07 kB
static/dist/assets/Search-DWJQ45Qd.css                                                    69.43 kB │ gzip:  10.66 kB
static/dist/assets/index-CgZEHIcM.css                                                    342.64 kB │ gzip: 110.16 kB
static/dist/assets/logo-BHeuky8i.js                                                        0.06 kB │ gzip:   0.08 kB
static/dist/assets/logo-C2M9lK3U.js                                                        0.06 kB │ gzip:   0.08 kB
static/dist/assets/logo-BbJQ0fWs.js                                                        0.06 kB │ gzip:   0.08 kB
static/dist/assets/logo-CW6PQqmQ.js                                                        0.06 kB │ gzip:   0.08 kB
static/dist/assets/logo-CM8gX-og.js                                                        0.06 kB │ gzip:   0.08 kB
static/dist/assets/logo-CGJHAKVD.js                                                        0.06 kB │ gzip:   0.08 kB
static/dist/assets/logo-DOLER09h.js                                                        0.06 kB │ gzip:   0.08 kB
static/dist/assets/logo-BXFnLkSI.js                                                        0.06 kB │ gzip:   0.08 kB
static/dist/assets/logo-J7t-4CBp.js                                                        0.06 kB │ gzip:   0.08 kB
static/dist/assets/logo-CxvnVTz2.js                                                        0.06 kB │ gzip:   0.08 kB
static/dist/assets/logo-C9HDQHSy.js                                                        0.06 kB │ gzip:   0.08 kB
static/dist/assets/logo-IHV3gtAZ.js                                                        0.06 kB │ gzip:   0.08 kB
static/dist/assets/logo-Dedvhxzp.js                                                        0.06 kB │ gzip:   0.08 kB
static/dist/assets/logo--kH-hKRS.js                                                        0.06 kB │ gzip:   0.08 kB
static/dist/assets/logo-CBz1b7O8.js                                                        0.06 kB │ gzip:   0.08 kB
static/dist/assets/logo-nOuRrv94.js                                                        0.06 kB │ gzip:   0.08 kB
static/dist/assets/logo-DIxV4RPX.js                                                        0.06 kB │ gzip:   0.08 kB
static/dist/assets/logo-uABdcgsF.js                                                        0.06 kB │ gzip:   0.08 kB
static/dist/assets/pluralize-49vSaAHF.js                                                   0.08 kB │ gzip:   0.09 kB
static/dist/assets/accessMethodTypes-CY5JnOnd.js                                           0.13 kB │ gzip:   0.14 kB
static/dist/assets/commafy-BfQYQOA4.js                                                     0.14 kB │ gzip:   0.14 kB
static/dist/assets/requestDebounceDuration-B92It3cW.js                                     0.16 kB │ gzip:   0.11 kB
static/dist/assets/subscriptions-k8WBSUF1.js                                               0.41 kB │ gzip:   0.21 kB
static/dist/assets/DownloadsLayout-BRZ3qvTU.js                                             0.44 kB │ gzip:   0.25 kB
static/dist/assets/Table-dDVQc7j1.js                                                       0.59 kB │ gzip:   0.38 kB
static/dist/assets/DefinitionList-PvGRMI9E.js                                              0.63 kB │ gzip:   0.39 kB
static/dist/assets/AdminLayout-TnBKPRoq.js                                                 0.63 kB │ gzip:   0.36 kB
static/dist/assets/AdminPage-d5cAOicX.js                                                   0.68 kB │ gzip:   0.36 kB
static/dist/assets/TooManyPointsModal-CW8l-qX2.js                                          0.74 kB │ gzip:   0.48 kB
static/dist/assets/humanizedQueryValueFormatters-z-QpfuHK.js                               1.00 kB │ gzip:   0.54 kB
static/dist/assets/KeyboardShortcutsModal-C_lcj6nD.js                                      1.24 kB │ gzip:   0.72 kB
static/dist/assets/metricsDataAccess-B0dv9eSs.js                                           1.26 kB │ gzip:   0.35 kB
static/dist/assets/Skeleton-ebV8aOiu.js                                                    1.28 kB │ gzip:   0.58 kB
static/dist/assets/AdminIndex-DdTneTkL.js                                                  1.36 kB │ gzip:   0.71 kB
static/dist/assets/index-Zi8wnWhN.js                                                       1.64 kB │ gzip:   0.94 kB
static/dist/assets/AdminProject-C67tO6LZ.js                                                1.68 kB │ gzip:   0.85 kB
static/dist/assets/useLazyQuery-E916DC2H.js                                                1.70 kB │ gzip:   0.89 kB
static/dist/assets/ShapefileUploadModal-D2--2jPB.js                                        1.83 kB │ gzip:   0.81 kB
static/dist/assets/DeprecatedParameterModal-oD6RCLGM.js                                    2.07 kB │ gzip:   1.16 kB
static/dist/assets/EditSubscriptionModal-DVmPDRqC.js                                       2.23 kB │ gzip:   1.13 kB
static/dist/assets/EarthdataDownloadRedirect-CZ19AFEJ.js                                   2.24 kB │ gzip:   0.90 kB
static/dist/assets/AboutCSDAModal-DgaQjzNv.js                                              2.25 kB │ gzip:   0.99 kB
static/dist/assets/ChunkedOrderModal-DRJnUYMk.js                                           2.34 kB │ gzip:   1.20 kB
static/dist/assets/AdminPreferencesMetrics-BTZ5iPsL.js                                     2.41 kB │ gzip:   0.84 kB
static/dist/assets/useCreateRetrieval-CawYNpOT.js                                          3.26 kB │ gzip:   1.59 kB
static/dist/assets/DownloadHistory-CvKJT04C.js                                             3.41 kB │ gzip:   1.42 kB
static/dist/assets/GranuleResultsHighlights-C7fJjCY8.js                                    3.66 kB │ gzip:   1.35 kB
static/dist/assets/CollectionDetailsHighlights-DO5OW0OE.js                                 3.77 kB │ gzip:   0.99 kB
static/dist/assets/EDSCModalContainer-CxUvnSbt.js                                          4.24 kB │ gzip:   1.45 kB
static/dist/assets/AdminRetrieval-Ci0tSslU.js                                              4.29 kB │ gzip:   1.78 kB
static/dist/assets/AdminProjects-DjTezF_U.js                                               4.35 kB │ gzip:   1.59 kB
static/dist/assets/Projects-D-9jeOSi.js                                                    4.40 kB │ gzip:   1.72 kB
static/dist/assets/AdminRetrievals-BdnXCZ74.js                                             4.60 kB │ gzip:   1.65 kB
static/dist/assets/AboutCwicModal-DyUBlJ3X.js                                              4.69 kB │ gzip:   1.92 kB
static/dist/assets/ContactInfo-CdMniZBP.js                                                 4.71 kB │ gzip:   1.55 kB
static/dist/assets/Subscriptions-aFvI2Meh.js                                               4.79 kB │ gzip:   1.71 kB
static/dist/assets/AdminRetrievalsMetrics-CnaNjPf2.js                                      4.82 kB │ gzip:   1.64 kB
static/dist/assets/useDeleteSubscription-_z5sCsEn.js                                       6.35 kB │ gzip:   2.44 kB
static/dist/assets/RelatedCollection-Bn7_oO7w.js                                          10.41 kB │ gzip:   3.99 kB
static/dist/assets/Modal-B7mRa8-J.js                                                      10.74 kB │ gzip:   4.05 kB
static/dist/assets/GranuleFiltersContainer-Br47tg0v.js                                    21.83 kB │ gzip:   5.91 kB
static/dist/assets/styles-Dh558zs6.js                                                     32.69 kB │ gzip:  10.78 kB
static/dist/assets/index-DEjb7TfO.js                                                      35.34 kB │ gzip:  12.82 kB
static/dist/assets/moment-BAtM24Ew.js                                                     60.92 kB │ gzip:  19.77 kB
static/dist/assets/createSpatialDisplay-CokIlKy0.js                                       60.95 kB │ gzip:  17.01 kB
static/dist/assets/OrderStatus-DwoYDoJQ.js                                                63.29 kB │ gzip:  17.62 kB
static/dist/assets/lodash-DR7EQ6YQ.js                                                     92.24 kB │ gzip:  31.91 kB
static/dist/assets/EchoForm-BRt55hH1.js                                                  108.53 kB │ gzip:  33.67 kB
static/dist/assets/SearchTour-Dc74uXEN.js                                                117.44 kB │ gzip:  35.77 kB
static/dist/assets/ShapefileDropzoneContainer-QWP-X2jk.js                                119.66 kB │ gzip:  40.21 kB
static/dist/assets/edscUtils-6LLLH5LD.js                                                 141.73 kB │ gzip:  46.95 kB
static/dist/assets/react-D1lqFcfa.js                                                     230.00 kB │ gzip:  74.34 kB
static/dist/assets/Project-CgVlSvsX.js                                                   232.42 kB │ gzip:  83.87 kB
static/dist/assets/Preferences-OEvqqZuv.js                                               362.82 kB │ gzip: 115.23 kB
static/dist/assets/Search-DNI0X-T-.js                                                    493.88 kB │ gzip: 143.94 kB
static/dist/assets/MapContainer-CuyDUlf5.js                                            1,199.70 kB │ gzip: 233.16 kB
static/dist/assets/index-BhYq-fug.js                                                   1,234.54 kB │ gzip: 386.23 kB
✓ built in 40.78s

The full bundle is smaller than main by -0.14 kB. 🎉

The index.js is larger than main by 0.01 kB. ❗

Run npx vite-bundle-visualizer to review the bundle in more detail.

File Main Branch Diff
Total 10227.73 kB 10227.59 kB -0.14 kB
index.js 1271.51 kB 1271.52 kB 0.01 kB
index.js (gzip) 399.99 kB 399.99 kB 0 kB
index.css 349.11 kB 349.11 kB 0 kB
index.css (gzip) 111.4 kB 111.4 kB 0 kB
Number of files 139 139 0
Build Time 33.71 s 40.78 s 7.07 s

@codecov

codecov Bot commented Aug 20, 2026

Copy link
Copy Markdown

Codecov Report

✅ All modified and coverable lines are covered by tests.
✅ Project coverage is 95.84%. Comparing base (a0102cc) to head (dea2470).

Additional details and impacted files
@@            Coverage Diff             @@
##             main    #2081      +/-   ##
==========================================
- Coverage   95.85%   95.84%   -0.02%     
==========================================
  Files         756      756              
  Lines       17773    17776       +3     
  Branches     4978     4978              
==========================================
+ Hits        17037    17038       +1     
- Misses        684      686       +2     
  Partials       52       52              

☔ View full report in Codecov by Harness.
📢 Have feedback on the report? Share it here.

🚀 New features to boost your workflow:
  • ❄️ Test Analytics: Detect flaky tests, report on failures, and find test suite problems.
  • 📦 JS Bundle Analysis: Save yourself from yourself by tracking and limiting bundle sizes in JS merges.

if (
collectionId === zustandState.granules.granules.collectionConceptId
&& !isOpenSearch
!collectionId

@eudoroolivares2016 eudoroolivares2016 Aug 20, 2026

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Should we put this catch further up if (!collectionId) return on something like line 49? if the coll is empty do we need to execute anything else on this slice instead bail?

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I originally had it further up but I was looking at what was triggering it, and the bug is because of the opensearch double trigger mentioned in the comments. So I moved it into this if statement. I meant to add details to that comment, I'll do that now

@macrouch
macrouch merged commit 33e07e1 into main Aug 21, 2026
37 checks passed
@macrouch
macrouch deleted the EDSC-4710 branch August 21, 2026 19:45
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants