Skip to content

[Bug]: Query string not populated for getServerSideProps #1068

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Closed
2 tasks done
rshackleton opened this issue Dec 22, 2021 · 9 comments · Fixed by #1105
Closed
2 tasks done

[Bug]: Query string not populated for getServerSideProps #1068

rshackleton opened this issue Dec 22, 2021 · 9 comments · Fixed by #1105
Labels
type: bug code to address defects in shipped code

Comments

@rshackleton
Copy link

rshackleton commented Dec 22, 2021

Summary

When loading a page that is served via SSR (has a getServerSideProps export) the context.query object is empty.

When running the site locally under dev mode (next dev) the query string is populated.

When running the site locally after building (next build then next serve) the query string is populated.

It is only after deploying the site to Netlify that the query string is empty.

Steps to reproduce

I've tried to create a repro but I've struggled to replicate the issue outside of our repository. However, I am calling console.log on the context.query object at the top of the getServerSideProps so I'm not sure what we could be doing to interfere with that outside of some configuration options we're using.

The repo is a private repo so I can't share it publicly. I can share log files or other build outputs via a private channel if needed.

A link to a reproduction repository

No response

Plugin version

4.1.1

More information about your build

  • I am building using the CLI
  • I am building using file-based configuration (netlify.toml)

What OS are you using?

Windows

Your netlify.toml file

`netlify.toml`
[build]
  command = "yarn build"
  publish = ".next"

[[plugins]]
  package = "@netlify/plugin-nextjs"

[functions]
  node_bundler = "esbuild"

Your public/_redirects file

`_redirects`
# Paste content of your `_redirects` file here

Your next.config.js file

`next.config.js`
const withSvgr = require('next-plugin-svgr');

/** @type {import('next').NextConfig} */
const baseOptions = {
  assetPrefix: '',
  fileLoader: true,
  images: {
    domains: ['cdn.sanity.io'],
    formats: ['image/avif', 'image/webp'],
  },
  reactStrictMode: true,
  async redirects() {
    return [
      {
        source: '/:path((?!unsupported.html$).*)',
        destination: '/unsupported.html',
        has: [
          {
            type: 'header',
            key: 'User-Agent',
            value: '(.*Trident.*)',
          },
        ],
        permanent: false,
      },
    ];
  },
  async rewrites() {
    return [
      {
        source: '/robots.txt',
        destination: '/api/robots',
      },
      {
        source: '/sitemap.xml',
        destination: '/api/sitemap',
      },
    ];
  },
};

module.exports = withSvgr(baseOptions);

Builds logs (or link to your logs)

Build logs
2021-12-22T17:09:49.7073311Z ────────────────────────────────────────────────────────────────
2021-12-22T17:09:49.7073650Z   Netlify Build                                                 
2021-12-22T17:09:49.7074098Z ────────────────────────────────────────────────────────────────
2021-12-22T17:09:49.7074437Z ​
2021-12-22T17:09:49.7074978Z > Version
2021-12-22T17:09:49.7078293Z   @netlify/build 26.0.2
2021-12-22T17:09:49.7128364Z ​
2021-12-22T17:09:49.7128585Z > Flags
2021-12-22T17:09:49.7136700Z   {}
2021-12-22T17:09:49.7193146Z ​
2021-12-22T17:09:49.7193377Z > Current directory
2021-12-22T17:09:49.7193632Z   C:\DevInt04-BuildAgent1\_work\r1\a\ClientName\drop\packages\packages\web
2021-12-22T17:09:49.7194179Z ​
2021-12-22T17:09:49.7194326Z > Config file
2021-12-22T17:09:49.7194818Z   C:\DevInt04-BuildAgent1\_work\r1\a\ClientName\drop\packages\packages\web\netlify.toml
2021-12-22T17:09:49.7196293Z ​
2021-12-22T17:09:49.7196639Z > Context
2021-12-22T17:09:49.7197064Z   deploy
2021-12-22T17:09:49.9219301Z ​
2021-12-22T17:09:49.9219582Z > Loading plugins
2021-12-22T17:09:49.9221391Z    - @netlify/[email protected] from netlify.toml and package.json
2021-12-22T17:09:51.6675891Z ​
2021-12-22T17:09:51.6676283Z ────────────────────────────────────────────────────────────────
2021-12-22T17:09:51.6676649Z   1. @netlify/plugin-nextjs (onPreBuild event)                  
2021-12-22T17:09:51.6676969Z ────────────────────────────────────────────────────────────────
2021-12-22T17:09:51.6677179Z ​
2021-12-22T17:09:51.6792080Z No Next.js cache to restore.
2021-12-22T17:09:51.6887371Z Netlify configuration property "build.environment.NEXT_PRIVATE_TARGET" value changed.
2021-12-22T17:09:51.8717515Z ​
2021-12-22T17:09:51.8732680Z (@netlify/plugin-nextjs onPreBuild completed in 202ms)
2021-12-22T17:09:51.8732978Z ​
2021-12-22T17:09:51.8733412Z ────────────────────────────────────────────────────────────────
2021-12-22T17:09:51.8733727Z   2. build.command from netlify.toml                            
2021-12-22T17:09:51.8734054Z ────────────────────────────────────────────────────────────────
2021-12-22T17:09:51.8734263Z ​
2021-12-22T17:09:51.8739896Z $ yarn build
2021-12-22T17:09:52.1400754Z $ next build
2021-12-22T17:09:52.7505218Z info  - Loaded env from C:\DevInt04-BuildAgent1\_work\r1\a\ClientName\drop\packages\packages\web\.env.production
2021-12-22T17:09:52.9251826Z warn  - No build cache found. Please configure build caching for faster rebuilds. Read more: https://nextjs.org/docs/messages/no-cache
2021-12-22T17:09:53.1614900Z info  - Checking validity of types...
2021-12-22T17:10:13.9840608Z info  - Creating an optimized production build...
2021-12-22T17:10:14.0552445Z info  - Disabled SWC as replacement for Babel because of custom Babel configuration "babel.config.js" https://nextjs.org/docs/messages/swc-disabled
2021-12-22T17:10:15.1238371Z info  - Using external babel configuration from C:\DevInt04-BuildAgent1\_work\r1\a\ClientName\drop\packages\packages\web\babel.config.js
2021-12-22T17:10:59.5244411Z info  - Compiled successfully
2021-12-22T17:10:59.5246049Z info  - Collecting page data...
2021-12-22T17:11:11.1494901Z info  - Generating static pages (0/93)
2021-12-22T17:11:13.0313746Z info  - Generating static pages (23/93)
2021-12-22T17:11:14.5193769Z info  - Generating static pages (46/93)
2021-12-22T17:11:16.0531108Z info  - Generating static pages (69/93)
2021-12-22T17:11:18.0879357Z info  - Generating static pages (93/93)
2021-12-22T17:11:18.1128584Z info  - Finalizing page optimization...
2021-12-22T17:11:18.2469894Z 

## Removed pages output due to client name etc.

2021-12-22T17:11:18.2667765Z 
2021-12-22T17:11:18.4345903Z ​
2021-12-22T17:11:18.4347669Z (build.command completed in 1m 26.5s)
2021-12-22T17:11:18.4357971Z ​
2021-12-22T17:11:18.4358363Z ────────────────────────────────────────────────────────────────
2021-12-22T17:11:18.4358649Z   3. @netlify/plugin-nextjs (onBuild event)                     
2021-12-22T17:11:18.4358962Z ────────────────────────────────────────────────────────────────
2021-12-22T17:11:18.4359284Z ​
2021-12-22T17:11:18.5920819Z Patching C:\DevInt04-BuildAgent1\_work\r1\a\ClientName\drop\packages\node_modules\next\dist\server\next-server.js
2021-12-22T17:11:18.5944769Z Moving static page files to serve from CDN...
2021-12-22T17:11:18.6124087Z Moved 0 files
2021-12-22T17:11:18.6127670Z Skipped moving 182 files because they match redirects or beforeFiles rewrites, so cannot be deployed to the CDN and will be served from the origin instead.
2021-12-22T17:11:18.6305051Z Netlify configuration property "redirects" value changed to [
2021-12-22T17:11:18.6305969Z   { from: '/_next/static/*', to: '/static/:splat', status: 200 },
2021-12-22T17:11:18.6306318Z   {
2021-12-22T17:11:18.6306595Z     from: '/_next/image*',
2021-12-22T17:11:18.6306970Z     query: { url: ':url', w: ':width', q: ':quality' },
2021-12-22T17:11:18.6307376Z     to: '/_ipx/w_:width,q_:quality/:url',
2021-12-22T17:11:18.6307709Z     status: 301
2021-12-22T17:11:18.6307943Z   },
2021-12-22T17:11:18.6308291Z   { from: '/_ipx/*', to: '/.netlify/builders/_ipx', status: 200 },
2021-12-22T17:11:18.6308595Z   { from: '/cache/*', to: '/404.html', status: 404, force: true },
2021-12-22T17:11:18.6308889Z   { from: '/server/*', to: '/404.html', status: 404, force: true },
2021-12-22T17:11:18.6309201Z   { from: '/serverless/*', to: '/404.html', status: 404, force: true },
2021-12-22T17:11:18.6309502Z   { from: '/traces', to: '/404.html', status: 404, force: true },
2021-12-22T17:11:18.6309716Z   {
2021-12-22T17:11:18.6309890Z     from: '/routes-manifest.json',
2021-12-22T17:11:18.6310077Z     to: '/404.html',
2021-12-22T17:11:18.6310364Z     status: 404,
2021-12-22T17:11:18.6310525Z     force: true
2021-12-22T17:11:18.6310676Z   },
2021-12-22T17:11:18.6310801Z   {
2021-12-22T17:11:18.6310961Z     from: '/build-manifest.json',
2021-12-22T17:11:18.6311152Z     to: '/404.html',
2021-12-22T17:11:18.6311315Z     status: 404,
2021-12-22T17:11:18.6311473Z     force: true
2021-12-22T17:11:18.6311623Z   },
2021-12-22T17:11:18.6311748Z   {
2021-12-22T17:11:18.6311911Z     from: '/prerender-manifest.json',
2021-12-22T17:11:18.6312109Z     to: '/404.html',
2021-12-22T17:11:18.6312272Z     status: 404,
2021-12-22T17:11:18.6312428Z     force: true
2021-12-22T17:11:18.6312578Z   },
2021-12-22T17:11:18.6312702Z   {
2021-12-22T17:11:18.6313294Z     from: '/react-loadable-manifest.json',
2021-12-22T17:11:18.6313525Z     to: '/404.html',
2021-12-22T17:11:18.6314323Z     status: 404,
2021-12-22T17:11:18.6314485Z     force: true
2021-12-22T17:11:18.6314649Z   },
2021-12-22T17:11:18.6314868Z   { from: '/BUILD_ID', to: '/404.html', status: 404, force: true },
2021-12-22T17:11:18.6315081Z   {
2021-12-22T17:11:18.6315235Z     from: '/api',
2021-12-22T17:11:18.6315433Z     to: '/.netlify/functions/___netlify-handler',
2021-12-22T17:11:18.6315626Z     status: 200
2021-12-22T17:11:18.6315781Z   },
2021-12-22T17:11:18.6315907Z   {
2021-12-22T17:11:18.6316053Z     from: '/api/*',
2021-12-22T17:11:18.6316263Z     to: '/.netlify/functions/___netlify-handler',
2021-12-22T17:11:18.6316456Z     status: 200
2021-12-22T17:11:18.6316609Z   },
2021-12-22T17:11:18.6316736Z   {
2021-12-22T17:11:18.6316888Z     from: '/favicon.ico',
2021-12-22T17:11:18.6317075Z     to: '/favicon.ico',
2021-12-22T17:11:18.6317271Z     conditions: { Cookie: [Array] },
2021-12-22T17:11:18.6317458Z     status: 200
2021-12-22T17:11:18.6317609Z   },
2021-12-22T17:11:18.6317735Z   {
2021-12-22T17:11:18.6317901Z     from: '/mockServiceWorker.js',
2021-12-22T17:11:18.6318111Z     to: '/mockServiceWorker.js',
2021-12-22T17:11:18.6318316Z     conditions: { Cookie: [Array] },
2021-12-22T17:11:18.6318501Z     status: 200
2021-12-22T17:11:18.6318654Z   },
2021-12-22T17:11:18.6318781Z   {
2021-12-22T17:11:18.6318939Z     from: '/unsupported.html',
2021-12-22T17:11:18.6319136Z     to: '/unsupported.html',
2021-12-22T17:11:18.6319337Z     conditions: { Cookie: [Array] },
2021-12-22T17:11:18.6319523Z     status: 200
2021-12-22T17:11:18.6319676Z   },

## Removed some static asset redirects due to logo names etc

2021-12-22T17:11:18.6429032Z   ... 39 more items
2021-12-22T17:11:18.6429187Z ].
2021-12-22T17:11:18.7932600Z ​
2021-12-22T17:11:18.7933062Z (@netlify/plugin-nextjs onBuild completed in 355ms)
2021-12-22T17:11:18.7943395Z ​
2021-12-22T17:11:18.7943677Z ────────────────────────────────────────────────────────────────
2021-12-22T17:11:18.7944175Z   4. Functions bundling                                         
2021-12-22T17:11:18.7944449Z ────────────────────────────────────────────────────────────────
2021-12-22T17:11:18.7944662Z ​
2021-12-22T17:11:18.7990303Z Packaging Functions from .netlify\functions-internal directory:
2021-12-22T17:11:18.7990876Z  - ___netlify-handler\___netlify-handler.js
2021-12-22T17:11:18.7991124Z  - ___netlify-odb-handler\___netlify-odb-handler.js
2021-12-22T17:11:18.7991536Z  - _ipx\_ipx.js
2021-12-22T17:11:18.7995290Z ​
2021-12-22T17:11:51.5196809Z ​
2021-12-22T17:11:51.5205360Z (Functions bundling completed in 32.7s)
2021-12-22T17:11:51.5223043Z ​
2021-12-22T17:11:51.5224398Z ────────────────────────────────────────────────────────────────
2021-12-22T17:11:51.5224697Z   5. @netlify/plugin-nextjs (onPostBuild event)                 
2021-12-22T17:11:51.5225011Z ────────────────────────────────────────────────────────────────
2021-12-22T17:11:51.5225321Z ​
2021-12-22T17:11:51.7618336Z Next.js cache saved.
2021-12-22T17:11:51.7937956Z ​
2021-12-22T17:11:51.7938290Z (@netlify/plugin-nextjs onPostBuild completed in 266ms)
2021-12-22T17:11:51.7962076Z ​
2021-12-22T17:11:51.7962488Z ────────────────────────────────────────────────────────────────
2021-12-22T17:11:51.7962845Z   Netlify Build Complete                                        
2021-12-22T17:11:51.7963137Z ────────────────────────────────────────────────────────────────
2021-12-22T17:11:51.7963336Z ​
2021-12-22T17:11:51.7964015Z (Netlify Build completed in 2m 2s)
2021-12-22T17:11:51.7977059Z �[32mDeploy path: �[39m       C:\DevInt04-BuildAgent1\_work\r1\a\ClientName\drop\packages\packages\web\.next
2021-12-22T17:11:51.7977560Z �[32mConfiguration path: �[39mC:\DevInt04-BuildAgent1\_work\r1\a\ClientName\drop\packages\packages\web\netlify.toml
2021-12-22T17:11:51.8487575Z Deploying to main site URL...
2021-12-22T17:11:52.1700309Z - Hashing files...
2021-12-22T17:11:52.1727815Z - Looking for a functions cache...
2021-12-22T17:11:52.1745051Z √ Deploying functions from cache (use --skip-functions-cache to override)
2021-12-22T17:11:52.6703088Z √ Finished hashing 503 files and 3 functions
2021-12-22T17:11:52.6703710Z - CDN diffing files...
2021-12-22T17:11:53.3976988Z √ CDN requesting 124 files and 2 functions
2021-12-22T17:11:53.3980635Z - Uploading 128 files
2021-12-22T17:12:13.9224358Z √ Finished uploading 128 assets
2021-12-22T17:12:13.9233511Z - Waiting for deploy to go live...
2021-12-22T17:12:25.7640781Z √ Deploy is live!
2021-12-22T17:12:25.7682123Z 
2021-12-22T17:12:25.8014437Z Done in 160.55s.
2021-12-22T17:12:25.8308770Z ##[section]Finishing: Netlify deployment

Function logs

Function logs
5:13:21 PM: e12ad51e Duration: 834.88 ms	Memory Usage: 146 MB
5:13:23 PM: ef96aa98 INFO   getServerSideProps: MediaListPage
5:13:23 PM: ef96aa98 INFO   context: {"query":{},"resolvedUrl":"/media"}
5:13:24 PM: ef96aa98 Duration: 1311.12 ms	Memory Usage: 146 MB

.next JSON files

generated .next JSON files
# Paste file contents here. Please check there isn't any private info in them
# You can either build locally, or download the deploy from Netlify by clicking the arrow next to the deploy time.
@rshackleton rshackleton added the type: bug code to address defects in shipped code label Dec 22, 2021
@ascorbic
Copy link
Contributor

Hey. Is the log coming from ___netlify-handler or ___netlify-odb-handler? SSR pages should be using the former, but there may be some rewrites error causing it to use the latter, which doesn't support query strings. Are you able to share more of the generated rewrites. Feel free to remove sensitive static files: I'm mostly interested in ones that rewrite to a function or builder.

@rshackleton
Copy link
Author

The log is coming from the ___netlify-odb-handler function.

The list of redirects in the build log is truncated and I can't see a way of getting a full list via the Netlify interface.

redirects
2021-12-22T17:11:18.4358363Z ────────────────────────────────────────────────────────────────
2021-12-22T17:11:18.4358649Z   3. @netlify/plugin-nextjs (onBuild event)                     
2021-12-22T17:11:18.4358962Z ────────────────────────────────────────────────────────────────
2021-12-22T17:11:18.4359284Z ​
2021-12-22T17:11:18.5920819Z Patching C:\DevInt04-BuildAgent1\_work\r1\a\ClientName\drop\packages\node_modules\next\dist\server\next-server.js
2021-12-22T17:11:18.5944769Z Moving static page files to serve from CDN...
2021-12-22T17:11:18.6124087Z Moved 0 files
2021-12-22T17:11:18.6127670Z Skipped moving 182 files because they match redirects or beforeFiles rewrites, so cannot be deployed to the CDN and will be served from the origin instead.
2021-12-22T17:11:18.6305051Z Netlify configuration property "redirects" value changed to [
2021-12-22T17:11:18.6305969Z   { from: '/_next/static/*', to: '/static/:splat', status: 200 },
2021-12-22T17:11:18.6306318Z   {
2021-12-22T17:11:18.6306595Z     from: '/_next/image*',
2021-12-22T17:11:18.6306970Z     query: { url: ':url', w: ':width', q: ':quality' },
2021-12-22T17:11:18.6307376Z     to: '/_ipx/w_:width,q_:quality/:url',
2021-12-22T17:11:18.6307709Z     status: 301
2021-12-22T17:11:18.6307943Z   },
2021-12-22T17:11:18.6308291Z   { from: '/_ipx/*', to: '/.netlify/builders/_ipx', status: 200 },
2021-12-22T17:11:18.6308595Z   { from: '/cache/*', to: '/404.html', status: 404, force: true },
2021-12-22T17:11:18.6308889Z   { from: '/server/*', to: '/404.html', status: 404, force: true },
2021-12-22T17:11:18.6309201Z   { from: '/serverless/*', to: '/404.html', status: 404, force: true },
2021-12-22T17:11:18.6309502Z   { from: '/traces', to: '/404.html', status: 404, force: true },
2021-12-22T17:11:18.6309716Z   {
2021-12-22T17:11:18.6309890Z     from: '/routes-manifest.json',
2021-12-22T17:11:18.6310077Z     to: '/404.html',
2021-12-22T17:11:18.6310364Z     status: 404,
2021-12-22T17:11:18.6310525Z     force: true
2021-12-22T17:11:18.6310676Z   },
2021-12-22T17:11:18.6310801Z   {
2021-12-22T17:11:18.6310961Z     from: '/build-manifest.json',
2021-12-22T17:11:18.6311152Z     to: '/404.html',
2021-12-22T17:11:18.6311315Z     status: 404,
2021-12-22T17:11:18.6311473Z     force: true
2021-12-22T17:11:18.6311623Z   },
2021-12-22T17:11:18.6311748Z   {
2021-12-22T17:11:18.6311911Z     from: '/prerender-manifest.json',
2021-12-22T17:11:18.6312109Z     to: '/404.html',
2021-12-22T17:11:18.6312272Z     status: 404,
2021-12-22T17:11:18.6312428Z     force: true
2021-12-22T17:11:18.6312578Z   },
2021-12-22T17:11:18.6312702Z   {
2021-12-22T17:11:18.6313294Z     from: '/react-loadable-manifest.json',
2021-12-22T17:11:18.6313525Z     to: '/404.html',
2021-12-22T17:11:18.6314323Z     status: 404,
2021-12-22T17:11:18.6314485Z     force: true
2021-12-22T17:11:18.6314649Z   },
2021-12-22T17:11:18.6314868Z   { from: '/BUILD_ID', to: '/404.html', status: 404, force: true },
2021-12-22T17:11:18.6315081Z   {
2021-12-22T17:11:18.6315235Z     from: '/api',
2021-12-22T17:11:18.6315433Z     to: '/.netlify/functions/___netlify-handler',
2021-12-22T17:11:18.6315626Z     status: 200
2021-12-22T17:11:18.6315781Z   },
2021-12-22T17:11:18.6315907Z   {
2021-12-22T17:11:18.6316053Z     from: '/api/*',
2021-12-22T17:11:18.6316263Z     to: '/.netlify/functions/___netlify-handler',
2021-12-22T17:11:18.6316456Z     status: 200
2021-12-22T17:11:18.6316609Z   },
2021-12-22T17:11:18.6316736Z   {
2021-12-22T17:11:18.6316888Z     from: '/favicon.ico',
2021-12-22T17:11:18.6317075Z     to: '/favicon.ico',
2021-12-22T17:11:18.6317271Z     conditions: { Cookie: [Array] },
2021-12-22T17:11:18.6317458Z     status: 200
2021-12-22T17:11:18.6317609Z   },
2021-12-22T17:11:18.6317735Z   {
2021-12-22T17:11:18.6317901Z     from: '/mockServiceWorker.js',
2021-12-22T17:11:18.6318111Z     to: '/mockServiceWorker.js',
2021-12-22T17:11:18.6318316Z     conditions: { Cookie: [Array] },
2021-12-22T17:11:18.6318501Z     status: 200
2021-12-22T17:11:18.6318654Z   },
2021-12-22T17:11:18.6318781Z   {
2021-12-22T17:11:18.6318939Z     from: '/unsupported.html',
2021-12-22T17:11:18.6319136Z     to: '/unsupported.html',
2021-12-22T17:11:18.6319337Z     conditions: { Cookie: [Array] },
2021-12-22T17:11:18.6319523Z     status: 200
2021-12-22T17:11:18.6319676Z   },
2021-12-22T17:11:18.6319803Z   {
2021-12-22T17:11:18.6319953Z     from: '/vercel.svg',
2021-12-22T17:11:18.6320138Z     to: '/vercel.svg',
2021-12-22T17:11:18.6320331Z     conditions: { Cookie: [Array] },
2021-12-22T17:11:18.6320516Z     status: 200
2021-12-22T17:11:18.6320669Z   },
2021-12-22T17:11:18.6320795Z   {
2021-12-22T17:11:18.6320964Z     from: '/img/application-image-1.jpg',
2021-12-22T17:11:18.6321186Z     to: '/img/application-image-1.jpg',
2021-12-22T17:11:18.6321401Z     conditions: { Cookie: [Array] },
2021-12-22T17:11:18.6321654Z     status: 200
2021-12-22T17:11:18.6321807Z   },
2021-12-22T17:11:18.6321933Z   {
2021-12-22T17:11:18.6322085Z     from: '/img/bsi.png',
2021-12-22T17:11:18.6322272Z     to: '/img/bsi.png',
2021-12-22T17:11:18.6322467Z     conditions: { Cookie: [Array] },
2021-12-22T17:11:18.6322653Z     status: 200
2021-12-22T17:11:18.6322806Z   },
2021-12-22T17:11:18.6322931Z   {
2021-12-22T17:11:18.6323099Z     from: '/img/content-signpost-1.png',
2021-12-22T17:11:18.6323322Z     to: '/img/content-signpost-1.png',
2021-12-22T17:11:18.6323531Z     conditions: { Cookie: [Array] },
2021-12-22T17:11:18.6323728Z     status: 200
2021-12-22T17:11:18.6323871Z   },
2021-12-22T17:11:18.6323997Z   {
2021-12-22T17:11:18.6324175Z     from: '/img/financial-reports.svg',
2021-12-22T17:11:18.6324382Z     to: '/img/financial-reports.svg',
2021-12-22T17:11:18.6324590Z     conditions: { Cookie: [Array] },
2021-12-22T17:11:18.6324791Z     status: 200
2021-12-22T17:11:18.6324934Z   },
2021-12-22T17:11:18.6325062Z   {
2021-12-22T17:11:18.6325238Z     from: '/img/gallery-image-1.jpg',
2021-12-22T17:11:18.6325439Z     to: '/img/gallery-image-1.jpg',
2021-12-22T17:11:18.6325644Z     conditions: { Cookie: [Array] },
2021-12-22T17:11:18.6325841Z     status: 200
2021-12-22T17:11:18.6325983Z   },
2021-12-22T17:11:18.6326108Z   {
2021-12-22T17:11:18.6326285Z     from: '/img/home-hero-banner.jpg',
2021-12-22T17:11:18.6326489Z     to: '/img/home-hero-banner.jpg',
2021-12-22T17:11:18.6326696Z     conditions: { Cookie: [Array] },
2021-12-22T17:11:18.6326892Z     status: 200
2021-12-22T17:11:18.6327034Z   },
2021-12-22T17:11:18.6327159Z   {
2021-12-22T17:11:18.6327340Z     from: '/img/icon-acoustic-optics.svg',
2021-12-22T17:11:18.6327555Z     to: '/img/icon-acoustic-optics.svg',
2021-12-22T17:11:18.6327766Z     conditions: { Cookie: [Array] },
2021-12-22T17:11:18.6327961Z     status: 200
2021-12-22T17:11:18.6328153Z   },
2021-12-22T17:11:18.6328278Z   {
2021-12-22T17:11:18.6328458Z     from: '/img/icon-crystal-optics.svg',
2021-12-22T17:11:18.6328672Z     to: '/img/icon-crystal-optics.svg',
2021-12-22T17:11:18.6328893Z     conditions: { Cookie: [Array] },
2021-12-22T17:11:18.6329079Z     status: 200
2021-12-22T17:11:18.6329221Z   },
2021-12-22T17:11:18.6329357Z   {
2021-12-22T17:11:18.6329536Z     from: '/img/icon-custom-configurations.svg',
2021-12-22T17:11:18.6329761Z     to: '/img/icon-custom-configurations.svg',
2021-12-22T17:11:18.6329990Z     conditions: { Cookie: [Array] },
2021-12-22T17:11:18.6330175Z     status: 200
2021-12-22T17:11:18.6330317Z   },
2021-12-22T17:11:18.6330452Z   {
2021-12-22T17:11:18.6330622Z     from: '/img/icon-electro-optics.svg',
2021-12-22T17:11:18.6330833Z     to: '/img/icon-electro-optics.svg',
2021-12-22T17:11:18.6331055Z     conditions: { Cookie: [Array] },
2021-12-22T17:11:18.6331241Z     status: 200
2021-12-22T17:11:18.6331382Z   },
2021-12-22T17:11:18.6331517Z   {
2021-12-22T17:11:18.6331689Z     from: '/img/icon-fiber-optics.svg',
2021-12-22T17:11:18.6331897Z     to: '/img/icon-fiber-optics.svg',
2021-12-22T17:11:18.6332118Z     conditions: { Cookie: [Array] },
2021-12-22T17:11:18.6332304Z     status: 200
2021-12-22T17:11:18.6332445Z   },
2021-12-22T17:11:18.6332581Z   {
2021-12-22T17:11:18.6332770Z     from: '/img/icon-high-quality-optical-finishing.svg',
2021-12-22T17:11:18.6333016Z     to: '/img/icon-high-quality-optical-finishing.svg',
2021-12-22T17:11:18.6333255Z     conditions: { Cookie: [Array] },
2021-12-22T17:11:18.6333440Z     status: 200
2021-12-22T17:11:18.6333592Z   },
2021-12-22T17:11:18.6333718Z   {
2021-12-22T17:11:18.6333889Z     from: '/img/icon-precision-optics.svg',
2021-12-22T17:11:18.6334115Z     to: '/img/icon-precision-optics.svg',
2021-12-22T17:11:18.6334329Z     conditions: { Cookie: [Array] },
2021-12-22T17:11:18.6334514Z     status: 200
2021-12-22T17:11:18.6334667Z   },
2021-12-22T17:11:18.6334901Z   {
2021-12-22T17:11:18.6335071Z     from: '/img/icon-robust-ar.svg',
2021-12-22T17:11:18.6335281Z     to: '/img/icon-robust-ar.svg',
2021-12-22T17:11:18.6335537Z     conditions: { Cookie: [Array] },
2021-12-22T17:11:18.6335723Z     status: 200
2021-12-22T17:11:18.6335876Z   },
2021-12-22T17:11:18.6336003Z   {
2021-12-22T17:11:18.6336165Z     from: '/img/icon-systems.svg',
2021-12-22T17:11:18.6336372Z     to: '/img/icon-systems.svg',
2021-12-22T17:11:18.6336576Z     conditions: { Cookie: [Array] },
2021-12-22T17:11:18.6336761Z     status: 200
2021-12-22T17:11:18.6336914Z   },
2021-12-22T17:11:18.6337040Z   {
2021-12-22T17:11:18.6337207Z     from: '/img/inner-hero-banner.jpg',
2021-12-22T17:11:18.6337425Z     to: '/img/inner-hero-banner.jpg',
2021-12-22T17:11:18.6337634Z     conditions: { Cookie: [Array] },
2021-12-22T17:11:18.6337819Z     status: 200
2021-12-22T17:11:18.6337972Z   },
2021-12-22T17:11:18.6338098Z   {
2021-12-22T17:11:18.6338271Z     from: '/img/investor-presentations.svg',
2021-12-22T17:11:18.6338504Z     to: '/img/investor-presentations.svg',
2021-12-22T17:11:18.6338719Z     conditions: { Cookie: [Array] },
2021-12-22T17:11:18.6338918Z     status: 200
2021-12-22T17:11:18.6339062Z   },
2021-12-22T17:11:18.6339187Z   {
2021-12-22T17:11:18.6339362Z     from: '/img/lloyds-register.png',
2021-12-22T17:11:18.6339565Z     to: '/img/lloyds-register.png',
2021-12-22T17:11:18.6339771Z     conditions: { Cookie: [Array] },
2021-12-22T17:11:18.6339967Z     status: 200
2021-12-22T17:11:18.6340110Z   },
2021-12-22T17:11:18.6340235Z   {
2021-12-22T17:11:18.6340407Z     from: '/img/media-card-1.jpg',
2021-12-22T17:11:18.6340603Z     to: '/img/media-card-1.jpg',
2021-12-22T17:11:18.6340806Z     conditions: { Cookie: [Array] },
2021-12-22T17:11:18.6341002Z     status: 200
2021-12-22T17:11:18.6341145Z   },
2021-12-22T17:11:18.6341270Z   {
2021-12-22T17:11:18.6341443Z     from: '/img/media-card-2.jpg',
2021-12-22T17:11:18.6341639Z     to: '/img/media-card-2.jpg',
2021-12-22T17:11:18.6341842Z     conditions: { Cookie: [Array] },
2021-12-22T17:11:18.6342086Z     status: 200
2021-12-22T17:11:18.6342232Z   },
2021-12-22T17:11:18.6342357Z   {
2021-12-22T17:11:18.6342539Z     from: '/img/media-detail-image-1.jpg',
2021-12-22T17:11:18.6342753Z     to: '/img/media-detail-image-1.jpg',
2021-12-22T17:11:18.6342966Z     conditions: { Cookie: [Array] },
2021-12-22T17:11:18.6343162Z     status: 200
2021-12-22T17:11:18.6343303Z   },
2021-12-22T17:11:18.6343429Z   {
2021-12-22T17:11:18.6343610Z     from: '/img/media-detail-image-2.jpg',
2021-12-22T17:11:18.6343824Z     to: '/img/media-detail-image-2.jpg',
2021-12-22T17:11:18.6344046Z     conditions: { Cookie: [Array] },
2021-12-22T17:11:18.6344232Z     status: 200
2021-12-22T17:11:18.6344375Z   },
2021-12-22T17:11:18.6344511Z   {
2021-12-22T17:11:18.6344680Z     from: '/img/media-hero-banner.jpg',
2021-12-22T17:11:18.6344886Z     to: '/img/media-hero-banner.jpg',
2021-12-22T17:11:18.6345106Z     conditions: { Cookie: [Array] },
2021-12-22T17:11:18.6345297Z     status: 200
2021-12-22T17:11:18.6345439Z   },
2021-12-22T17:11:18.6345578Z   {
2021-12-22T17:11:18.6345740Z     from: '/img/page-card-1.png',
2021-12-22T17:11:18.6345933Z     to: '/img/page-card-1.png',
2021-12-22T17:11:18.6346148Z     conditions: { Cookie: [Array] },
2021-12-22T17:11:18.6346334Z     status: 200
2021-12-22T17:11:18.6346477Z   },
2021-12-22T17:11:18.6346613Z   {
2021-12-22T17:11:18.6346775Z     from: '/img/page-card-2.png',
2021-12-22T17:11:18.6346969Z     to: '/img/page-card-2.png',
2021-12-22T17:11:18.6347182Z     conditions: { Cookie: [Array] },
2021-12-22T17:11:18.6347368Z     status: 200
2021-12-22T17:11:18.6347510Z   },
2021-12-22T17:11:18.6347649Z   {
2021-12-22T17:11:18.6347811Z     from: '/img/page-card-3.png',
2021-12-22T17:11:18.6348004Z     to: '/img/page-card-3.png',
2021-12-22T17:11:18.6348218Z     conditions: { Cookie: [Array] },
2021-12-22T17:11:18.6348404Z     status: 200
2021-12-22T17:11:18.6348547Z   },
2021-12-22T17:11:18.6348682Z   {
2021-12-22T17:11:18.6348847Z     from: '/img/page-card-4.png',
2021-12-22T17:11:18.6349363Z     to: '/img/page-card-4.png',
2021-12-22T17:11:18.6349693Z     conditions: { Cookie: [Array] },
2021-12-22T17:11:18.6349884Z     status: 200
2021-12-22T17:11:18.6350030Z   },
2021-12-22T17:11:18.6350169Z   {
2021-12-22T17:11:18.6350336Z     from: '/img/perry-johnson.png',
2021-12-22T17:11:18.6350549Z     to: '/img/perry-johnson.png',
2021-12-22T17:11:18.6350760Z     conditions: { Cookie: [Array] },
2021-12-22T17:11:18.6351055Z     status: 200
2021-12-22T17:11:18.6351207Z   },
2021-12-22T17:11:18.6351334Z   {
2021-12-22T17:11:18.6351508Z     from: '/img/product-category-card-1.jpg',
2021-12-22T17:11:18.6351843Z     to: '/img/product-category-card-1.jpg',
2021-12-22T17:11:18.6352066Z     conditions: { Cookie: [Array] },
2021-12-22T17:11:18.6352364Z     status: 200
2021-12-22T17:11:18.6352518Z   },
2021-12-22T17:11:18.6352644Z   {
2021-12-22T17:11:18.6352918Z     from: '/img/product-image-1.jpg',
2021-12-22T17:11:18.6353145Z     to: '/img/product-image-1.jpg',
2021-12-22T17:11:18.6353359Z     conditions: { Cookie: [Array] },
2021-12-22T17:11:18.6353552Z     status: 200
2021-12-22T17:11:18.6353708Z   },
2021-12-22T17:11:18.6353838Z   {
2021-12-22T17:11:18.6354007Z     from: '/img/product-image-2.jpg',
2021-12-22T17:11:18.6354327Z     to: '/img/product-image-2.jpg',
2021-12-22T17:11:18.6354535Z     conditions: { Cookie: [Array] },
2021-12-22T17:11:18.6354719Z     status: 200
2021-12-22T17:11:18.6367891Z   },
2021-12-22T17:11:18.6368048Z   {
2021-12-22T17:11:18.6368220Z     from: '/img/profile-image-1.jpg',
2021-12-22T17:11:18.6368437Z     to: '/img/profile-image-1.jpg',
2021-12-22T17:11:18.6368650Z     conditions: { Cookie: [Array] },
2021-12-22T17:11:18.6368840Z     status: 200
2021-12-22T17:11:18.6368991Z   },
2021-12-22T17:11:18.6369119Z   {
2021-12-22T17:11:18.6369291Z     from: '/img/regulatory-notices.svg',
2021-12-22T17:11:18.6369509Z     to: '/img/regulatory-notices.svg',
2021-12-22T17:11:18.6369838Z     conditions: { Cookie: [Array] },
2021-12-22T17:11:18.6370034Z     status: 200
2021-12-22T17:11:18.6370186Z   },
2021-12-22T17:11:18.6370314Z   {
2021-12-22T17:11:18.6370478Z     from: '/img/tuv-nord.png',
2021-12-22T17:11:18.6370813Z     to: '/img/tuv-nord.png',
2021-12-22T17:11:18.6371020Z     conditions: { Cookie: [Array] },
2021-12-22T17:11:18.6371215Z     status: 200
2021-12-22T17:11:18.6371361Z   },
2021-12-22T17:11:18.6371488Z   {
2021-12-22T17:11:18.6371653Z     from: '/video/video.mp4',
2021-12-22T17:11:18.6371843Z     to: '/video/video.mp4',
2021-12-22T17:11:18.6372046Z     conditions: { Cookie: [Array] },
2021-12-22T17:11:18.6372240Z     status: 200
2021-12-22T17:11:18.6372386Z   },
2021-12-22T17:11:18.6372514Z   {
2021-12-22T17:11:18.6372714Z     from: '/fonts/montserrat/montserrat-v18-latin-100.woff',
2021-12-22T17:11:18.6372974Z     to: '/fonts/montserrat/montserrat-v18-latin-100.woff',
2021-12-22T17:11:18.6373210Z     conditions: { Cookie: [Array] },
2021-12-22T17:11:18.6373409Z     status: 200
2021-12-22T17:11:18.6373554Z   },
2021-12-22T17:11:18.6373685Z   {
2021-12-22T17:11:18.6373885Z     from: '/fonts/montserrat/montserrat-v18-latin-100.woff2',
2021-12-22T17:11:18.6374146Z     to: '/fonts/montserrat/montserrat-v18-latin-100.woff2',
2021-12-22T17:11:18.6374389Z     conditions: { Cookie: [Array] },
2021-12-22T17:11:18.6374581Z     status: 200
2021-12-22T17:11:18.6374726Z   },
2021-12-22T17:11:18.6374858Z   {
2021-12-22T17:11:18.6375061Z     from: '/fonts/montserrat/montserrat-v18-latin-100italic.woff',
2021-12-22T17:11:18.6375332Z     to: '/fonts/montserrat/montserrat-v18-latin-100italic.woff',
2021-12-22T17:11:18.6375579Z     conditions: { Cookie: [Array] },
2021-12-22T17:11:18.6375770Z     status: 200
2021-12-22T17:11:18.6375914Z   },
2021-12-22T17:11:18.6376046Z   {
2021-12-22T17:11:18.6376250Z     from: '/fonts/montserrat/montserrat-v18-latin-100italic.woff2',
2021-12-22T17:11:18.6376524Z     to: '/fonts/montserrat/montserrat-v18-latin-100italic.woff2',
2021-12-22T17:11:18.6376777Z     conditions: { Cookie: [Array] },
2021-12-22T17:11:18.6377046Z     status: 200
2021-12-22T17:11:18.6377193Z   },
2021-12-22T17:11:18.6377327Z   {
2021-12-22T17:11:18.6377523Z     from: '/fonts/montserrat/montserrat-v18-latin-200.woff',
2021-12-22T17:11:18.6377782Z     to: '/fonts/montserrat/montserrat-v18-latin-200.woff',
2021-12-22T17:11:18.6378024Z     conditions: { Cookie: [Array] },
2021-12-22T17:11:18.6378215Z     status: 200
2021-12-22T17:11:18.6378365Z   },
2021-12-22T17:11:18.6378495Z   {
2021-12-22T17:11:18.6378693Z     from: '/fonts/montserrat/montserrat-v18-latin-200.woff2',
2021-12-22T17:11:18.6378958Z     to: '/fonts/montserrat/montserrat-v18-latin-200.woff2',
2021-12-22T17:11:18.6379198Z     conditions: { Cookie: [Array] },
2021-12-22T17:11:18.6379388Z     status: 200
2021-12-22T17:11:18.6379539Z   },
2021-12-22T17:11:18.6379669Z   {
2021-12-22T17:11:18.6379872Z     from: '/fonts/montserrat/montserrat-v18-latin-200italic.woff',
2021-12-22T17:11:18.6380154Z     to: '/fonts/montserrat/montserrat-v18-latin-200italic.woff',
2021-12-22T17:11:18.6380401Z     conditions: { Cookie: [Array] },
2021-12-22T17:11:18.6380591Z     status: 200
2021-12-22T17:11:18.6380742Z   },
2021-12-22T17:11:18.6380871Z   {
2021-12-22T17:11:18.6381075Z     from: '/fonts/montserrat/montserrat-v18-latin-200italic.woff2',
2021-12-22T17:11:18.6381355Z     to: '/fonts/montserrat/montserrat-v18-latin-200italic.woff2',
2021-12-22T17:11:18.6381601Z     conditions: { Cookie: [Array] },
2021-12-22T17:11:18.6381790Z     status: 200
2021-12-22T17:11:18.6381941Z   },
2021-12-22T17:11:18.6382069Z   {
2021-12-22T17:11:18.6382265Z     from: '/fonts/montserrat/montserrat-v18-latin-300.woff',
2021-12-22T17:11:18.6382531Z     to: '/fonts/montserrat/montserrat-v18-latin-300.woff',
2021-12-22T17:11:18.6382767Z     conditions: { Cookie: [Array] },
2021-12-22T17:11:18.6382962Z     status: 200
2021-12-22T17:11:18.6383108Z   },
2021-12-22T17:11:18.6383237Z   {
2021-12-22T17:11:18.6383784Z     from: '/fonts/montserrat/montserrat-v18-latin-300.woff2',
2021-12-22T17:11:18.6384058Z     to: '/fonts/montserrat/montserrat-v18-latin-300.woff2',
2021-12-22T17:11:18.6384297Z     conditions: { Cookie: [Array] },
2021-12-22T17:11:18.6384495Z     status: 200
2021-12-22T17:11:18.6384642Z   },
2021-12-22T17:11:18.6384771Z   {
2021-12-22T17:11:18.6384977Z     from: '/fonts/montserrat/montserrat-v18-latin-300italic.woff',
2021-12-22T17:11:18.6385252Z     to: '/fonts/montserrat/montserrat-v18-latin-300italic.woff',
2021-12-22T17:11:18.6385495Z     conditions: { Cookie: [Array] },
2021-12-22T17:11:18.6385695Z     status: 200
2021-12-22T17:11:18.6385841Z   },
2021-12-22T17:11:18.6385969Z   {
2021-12-22T17:11:18.6386179Z     from: '/fonts/montserrat/montserrat-v18-latin-300italic.woff2',
2021-12-22T17:11:18.6386455Z     to: '/fonts/montserrat/montserrat-v18-latin-300italic.woff2',
2021-12-22T17:11:18.6386704Z     conditions: { Cookie: [Array] },
2021-12-22T17:11:18.6386895Z     status: 200
2021-12-22T17:11:18.6387044Z   },
2021-12-22T17:11:18.6387176Z   {
2021-12-22T17:11:18.6387376Z     from: '/fonts/montserrat/montserrat-v18-latin-500.woff',
2021-12-22T17:11:18.6387635Z     to: '/fonts/montserrat/montserrat-v18-latin-500.woff',
2021-12-22T17:11:18.6387877Z     conditions: { Cookie: [Array] },
2021-12-22T17:11:18.6388068Z     status: 200
2021-12-22T17:11:18.6388213Z   },
2021-12-22T17:11:18.6388346Z   {
2021-12-22T17:11:18.6388544Z     from: '/fonts/montserrat/montserrat-v18-latin-500.woff2',
2021-12-22T17:11:18.6388805Z     to: '/fonts/montserrat/montserrat-v18-latin-500.woff2',
2021-12-22T17:11:18.6389049Z     conditions: { Cookie: [Array] },
2021-12-22T17:11:18.6389239Z     status: 200
2021-12-22T17:11:18.6389385Z   },
2021-12-22T17:11:18.6389524Z   {
2021-12-22T17:11:18.6389728Z     from: '/fonts/montserrat/montserrat-v18-latin-500italic.woff',
2021-12-22T17:11:18.6390000Z     to: '/fonts/montserrat/montserrat-v18-latin-500italic.woff',
2021-12-22T17:11:18.6390250Z     conditions: { Cookie: [Array] },
2021-12-22T17:11:18.6390442Z     status: 200
2021-12-22T17:11:18.6390651Z   },
2021-12-22T17:11:18.6390782Z   {
2021-12-22T17:11:18.6390986Z     from: '/fonts/montserrat/montserrat-v18-latin-500italic.woff2',
2021-12-22T17:11:18.6391264Z     to: '/fonts/montserrat/montserrat-v18-latin-500italic.woff2',
2021-12-22T17:11:18.6391510Z     conditions: { Cookie: [Array] },
2021-12-22T17:11:18.6391700Z     status: 200
2021-12-22T17:11:18.6391853Z   },
2021-12-22T17:11:18.6391982Z   {
2021-12-22T17:11:18.6392179Z     from: '/fonts/montserrat/montserrat-v18-latin-600.woff',
2021-12-22T17:11:18.6392447Z     to: '/fonts/montserrat/montserrat-v18-latin-600.woff',
2021-12-22T17:11:18.6392686Z     conditions: { Cookie: [Array] },
2021-12-22T17:11:18.6392876Z     status: 200
2021-12-22T17:11:18.6393031Z   },
2021-12-22T17:11:18.6393161Z   {
2021-12-22T17:11:18.6393358Z     from: '/fonts/montserrat/montserrat-v18-latin-600.woff2',
2021-12-22T17:11:18.6393630Z     to: '/fonts/montserrat/montserrat-v18-latin-600.woff2',
2021-12-22T17:11:18.6393872Z     conditions: { Cookie: [Array] },
2021-12-22T17:11:18.6394065Z     status: 200
2021-12-22T17:11:18.6394222Z   },
2021-12-22T17:11:18.6394350Z   {
2021-12-22T17:11:18.6394553Z     from: '/fonts/montserrat/montserrat-v18-latin-600italic.woff',
2021-12-22T17:11:18.6394836Z     to: '/fonts/montserrat/montserrat-v18-latin-600italic.woff',
2021-12-22T17:11:18.6395080Z     conditions: { Cookie: [Array] },
2021-12-22T17:11:18.6395280Z     status: 200
2021-12-22T17:11:18.6395426Z   },
2021-12-22T17:11:18.6395554Z   {
2021-12-22T17:11:18.6395768Z     from: '/fonts/montserrat/montserrat-v18-latin-600italic.woff2',
2021-12-22T17:11:18.6396043Z     to: '/fonts/montserrat/montserrat-v18-latin-600italic.woff2',
2021-12-22T17:11:18.6396286Z     conditions: { Cookie: [Array] },
2021-12-22T17:11:18.6396484Z     status: 200
2021-12-22T17:11:18.6396629Z   },
2021-12-22T17:11:18.6396757Z   {
2021-12-22T17:11:18.6396959Z     from: '/fonts/montserrat/montserrat-v18-latin-700.woff',
2021-12-22T17:11:18.6397265Z     to: '/fonts/montserrat/montserrat-v18-latin-700.woff',
2021-12-22T17:11:18.6397505Z     conditions: { Cookie: [Array] },
2021-12-22T17:11:18.6397710Z     status: 200
2021-12-22T17:11:18.6397855Z   },
2021-12-22T17:11:18.6397984Z   {
2021-12-22T17:11:18.6398186Z     from: '/fonts/montserrat/montserrat-v18-latin-700.woff2',
2021-12-22T17:11:18.6398447Z     to: '/fonts/montserrat/montserrat-v18-latin-700.woff2',
2021-12-22T17:11:18.6398696Z     conditions: { Cookie: [Array] },
2021-12-22T17:11:18.6398887Z     status: 200
2021-12-22T17:11:18.6399034Z   },
2021-12-22T17:11:18.6399168Z   {
2021-12-22T17:11:18.6399372Z     from: '/fonts/montserrat/montserrat-v18-latin-700italic.woff',
2021-12-22T17:11:18.6399643Z     to: '/fonts/montserrat/montserrat-v18-latin-700italic.woff',
2021-12-22T17:11:18.6399897Z     conditions: { Cookie: [Array] },
2021-12-22T17:11:18.6400088Z     status: 200
2021-12-22T17:11:18.6400234Z   },
2021-12-22T17:11:18.6400378Z   {
2021-12-22T17:11:18.6400582Z     from: '/fonts/montserrat/montserrat-v18-latin-700italic.woff2',
2021-12-22T17:11:18.6400859Z     to: '/fonts/montserrat/montserrat-v18-latin-700italic.woff2',
2021-12-22T17:11:18.6401109Z     conditions: { Cookie: [Array] },
2021-12-22T17:11:18.6401299Z     status: 200
2021-12-22T17:11:18.6401444Z   },
2021-12-22T17:11:18.6401577Z   {
2021-12-22T17:11:18.6401774Z     from: '/fonts/montserrat/montserrat-v18-latin-800.woff',
2021-12-22T17:11:18.6402032Z     to: '/fonts/montserrat/montserrat-v18-latin-800.woff',
2021-12-22T17:11:18.6402273Z     conditions: { Cookie: [Array] },
2021-12-22T17:11:18.6402498Z     status: 200
2021-12-22T17:11:18.6402648Z   },
2021-12-22T17:11:18.6402777Z   {
2021-12-22T17:11:18.6402978Z     from: '/fonts/montserrat/montserrat-v18-latin-800.woff2',
2021-12-22T17:11:18.6403239Z     to: '/fonts/montserrat/montserrat-v18-latin-800.woff2',
2021-12-22T17:11:18.6403477Z     conditions: { Cookie: [Array] },
2021-12-22T17:11:18.6403678Z     status: 200
2021-12-22T17:11:18.6403825Z   },
2021-12-22T17:11:18.6404005Z   {
2021-12-22T17:11:18.6404214Z     from: '/fonts/montserrat/montserrat-v18-latin-800italic.woff',
2021-12-22T17:11:18.6404487Z     to: '/fonts/montserrat/montserrat-v18-latin-800italic.woff',
2021-12-22T17:11:18.6404731Z     conditions: { Cookie: [Array] },
2021-12-22T17:11:18.6404929Z     status: 200
2021-12-22T17:11:18.6405076Z   },
2021-12-22T17:11:18.6405204Z   {
2021-12-22T17:11:18.6405418Z     from: '/fonts/montserrat/montserrat-v18-latin-800italic.woff2',
2021-12-22T17:11:18.6405694Z     to: '/fonts/montserrat/montserrat-v18-latin-800italic.woff2',
2021-12-22T17:11:18.6405939Z     conditions: { Cookie: [Array] },
2021-12-22T17:11:18.6406140Z     status: 200
2021-12-22T17:11:18.6406285Z   },
2021-12-22T17:11:18.6406413Z   {
2021-12-22T17:11:18.6406619Z     from: '/fonts/montserrat/montserrat-v18-latin-900.woff',
2021-12-22T17:11:18.6406877Z     to: '/fonts/montserrat/montserrat-v18-latin-900.woff',
2021-12-22T17:11:18.6407128Z     conditions: { Cookie: [Array] },
2021-12-22T17:11:18.6407322Z     status: 200
2021-12-22T17:11:18.6407468Z   },
2021-12-22T17:11:18.6407600Z   {
2021-12-22T17:11:18.6407798Z     from: '/fonts/montserrat/montserrat-v18-latin-900.woff2',
2021-12-22T17:11:18.6408060Z     to: '/fonts/montserrat/montserrat-v18-latin-900.woff2',
2021-12-22T17:11:18.6408303Z     conditions: { Cookie: [Array] },
2021-12-22T17:11:18.6408495Z     status: 200
2021-12-22T17:11:18.6408640Z   },
2021-12-22T17:11:18.6408780Z   {
2021-12-22T17:11:18.6408984Z     from: '/fonts/montserrat/montserrat-v18-latin-900italic.woff',
2021-12-22T17:11:18.6409257Z     to: '/fonts/montserrat/montserrat-v18-latin-900italic.woff',
2021-12-22T17:11:18.6409510Z     conditions: { Cookie: [Array] },
2021-12-22T17:11:18.6409702Z     status: 200
2021-12-22T17:11:18.6409847Z   },
2021-12-22T17:11:18.6409988Z   {
2021-12-22T17:11:18.6410192Z     from: '/fonts/montserrat/montserrat-v18-latin-900italic.woff2',
2021-12-22T17:11:18.6410524Z     to: '/fonts/montserrat/montserrat-v18-latin-900italic.woff2',
2021-12-22T17:11:18.6410774Z     conditions: { Cookie: [Array] },
2021-12-22T17:11:18.6410965Z     status: 200
2021-12-22T17:11:18.6411121Z   },
2021-12-22T17:11:18.6411252Z   {
2021-12-22T17:11:18.6411451Z     from: '/fonts/montserrat/montserrat-v18-latin-italic.woff',
2021-12-22T17:11:18.6411725Z     to: '/fonts/montserrat/montserrat-v18-latin-italic.woff',
2021-12-22T17:11:18.6411967Z     conditions: { Cookie: [Array] },
2021-12-22T17:11:18.6412157Z     status: 200
2021-12-22T17:11:18.6412307Z   },
2021-12-22T17:11:18.6412437Z   {
2021-12-22T17:11:18.6412638Z     from: '/fonts/montserrat/montserrat-v18-latin-italic.woff2',
2021-12-22T17:11:18.6412909Z     to: '/fonts/montserrat/montserrat-v18-latin-italic.woff2',
2021-12-22T17:11:18.6413152Z     conditions: { Cookie: [Array] },
2021-12-22T17:11:18.6413342Z     status: 200
2021-12-22T17:11:18.6413495Z   },
2021-12-22T17:11:18.6413625Z   {
2021-12-22T17:11:18.6413829Z     from: '/fonts/montserrat/montserrat-v18-latin-regular.woff',
2021-12-22T17:11:18.6414111Z     to: '/fonts/montserrat/montserrat-v18-latin-regular.woff',
2021-12-22T17:11:18.6414353Z     conditions: { Cookie: [Array] },
2021-12-22T17:11:18.6414553Z     status: 200
2021-12-22T17:11:18.6414701Z   },
2021-12-22T17:11:18.6414830Z   {
2021-12-22T17:11:18.6415042Z     from: '/fonts/montserrat/montserrat-v18-latin-regular.woff2',
2021-12-22T17:11:18.6415314Z     to: '/fonts/montserrat/montserrat-v18-latin-regular.woff2',
2021-12-22T17:11:18.6415558Z     conditions: { Cookie: [Array] },
2021-12-22T17:11:18.6415760Z     status: 200
2021-12-22T17:11:18.6415906Z   },
2021-12-22T17:11:18.6416035Z   {
2021-12-22T17:11:18.6416236Z     from: '/fonts/overpass/overpass-v5-latin-100.woff',
2021-12-22T17:11:18.6416485Z     to: '/fonts/overpass/overpass-v5-latin-100.woff',
2021-12-22T17:11:18.6416717Z     conditions: { Cookie: [Array] },
2021-12-22T17:11:18.6416918Z     status: 200
2021-12-22T17:11:18.6417067Z   },
2021-12-22T17:11:18.6417197Z   {
2021-12-22T17:11:18.6417440Z     from: '/fonts/overpass/overpass-v5-latin-100.woff2',
2021-12-22T17:11:18.6417692Z     to: '/fonts/overpass/overpass-v5-latin-100.woff2',
2021-12-22T17:11:18.6417925Z     conditions: { Cookie: [Array] },
2021-12-22T17:11:18.6418124Z     status: 200
2021-12-22T17:11:18.6418270Z   },
2021-12-22T17:11:18.6418399Z   {
2021-12-22T17:11:18.6418599Z     from: '/fonts/overpass/overpass-v5-latin-100italic.woff',
2021-12-22T17:11:18.6418855Z     to: '/fonts/overpass/overpass-v5-latin-100italic.woff',
2021-12-22T17:11:18.6419103Z     conditions: { Cookie: [Array] },
2021-12-22T17:11:18.6419296Z     status: 200
2021-12-22T17:11:18.6419442Z   },
2021-12-22T17:11:18.6419578Z   {
2021-12-22T17:11:18.6419778Z     from: '/fonts/overpass/overpass-v5-latin-100italic.woff2',
2021-12-22T17:11:18.6420043Z     to: '/fonts/overpass/overpass-v5-latin-100italic.woff2',
2021-12-22T17:11:18.6420293Z     conditions: { Cookie: [Array] },
2021-12-22T17:11:18.6420488Z     status: 200
2021-12-22T17:11:18.6420638Z   },
2021-12-22T17:11:18.6420778Z   {
2021-12-22T17:11:18.6420968Z     from: '/fonts/overpass/overpass-v5-latin-200.woff',
2021-12-22T17:11:18.6421217Z     to: '/fonts/overpass/overpass-v5-latin-200.woff',
2021-12-22T17:11:18.6421460Z     conditions: { Cookie: [Array] },
2021-12-22T17:11:18.6421651Z     status: 200
2021-12-22T17:11:18.6421798Z   },
2021-12-22T17:11:18.6421936Z   {
2021-12-22T17:11:18.6422128Z     from: '/fonts/overpass/overpass-v5-latin-200.woff2',
2021-12-22T17:11:18.6422379Z     to: '/fonts/overpass/overpass-v5-latin-200.woff2',
2021-12-22T17:11:18.6422623Z     conditions: { Cookie: [Array] },
2021-12-22T17:11:18.6422813Z     status: 200
2021-12-22T17:11:18.6422966Z   },
2021-12-22T17:11:18.6423097Z   {
2021-12-22T17:11:18.6423294Z     from: '/fonts/overpass/overpass-v5-latin-200italic.woff',
2021-12-22T17:11:18.6423560Z     to: '/fonts/overpass/overpass-v5-latin-200italic.woff',
2021-12-22T17:11:18.6423845Z     conditions: { Cookie: [Array] },
2021-12-22T17:11:18.6424040Z     status: 200
2021-12-22T17:11:18.6424191Z   },
2021-12-22T17:11:18.6424320Z   {
2021-12-22T17:11:18.6424519Z     from: '/fonts/overpass/overpass-v5-latin-200italic.woff2',
2021-12-22T17:11:18.6424787Z     to: '/fonts/overpass/overpass-v5-latin-200italic.woff2',
2021-12-22T17:11:18.6425027Z     conditions: { Cookie: [Array] },
2021-12-22T17:11:18.6425217Z     status: 200
2021-12-22T17:11:18.6425375Z   },
2021-12-22T17:11:18.6425505Z   {
2021-12-22T17:11:18.6425695Z     from: '/fonts/overpass/overpass-v5-latin-300.woff',
2021-12-22T17:11:18.6425952Z     to: '/fonts/overpass/overpass-v5-latin-300.woff',
2021-12-22T17:11:18.6426184Z     conditions: { Cookie: [Array] },
2021-12-22T17:11:18.6426375Z     status: 200
2021-12-22T17:11:18.6426531Z   },
2021-12-22T17:11:18.6426659Z   {
2021-12-22T17:11:18.6426851Z     from: '/fonts/overpass/overpass-v5-latin-300.woff2',
2021-12-22T17:11:18.6427116Z     to: '/fonts/overpass/overpass-v5-latin-300.woff2',
2021-12-22T17:11:18.6427352Z     conditions: { Cookie: [Array] },
2021-12-22T17:11:18.6427556Z     status: 200
2021-12-22T17:11:18.6427703Z   },
2021-12-22T17:11:18.6427831Z   {
2021-12-22T17:11:18.6428037Z     from: '/fonts/overpass/overpass-v5-latin-300italic.woff',
2021-12-22T17:11:18.6428300Z     to: '/fonts/overpass/overpass-v5-latin-300italic.woff',
2021-12-22T17:11:18.6428538Z     conditions: { Cookie: [Array] },
2021-12-22T17:11:18.6428738Z     status: 200
2021-12-22T17:11:18.6428886Z   },
2021-12-22T17:11:18.6429032Z   ... 39 more items
2021-12-22T17:11:18.6429187Z ].
2021-12-22T17:11:18.7932600Z ​
2021-12-22T17:11:18.7933062Z (@netlify/plugin-nextjs onBuild completed in 355ms)

@rshackleton
Copy link
Author

rshackleton commented Dec 23, 2021

I've downloaded the build from Netlify and these redirects are in the generated netlify.toml

    [[context.HEAD.redirects]]
    from = "/_next/data/xxxxxxxxxxxx/media/:slug.json"
    to = "/.netlify/builders/___netlify-odb-handler"
    status = 200

    [[context.HEAD.redirects]]
    from = "/_next/data/xxxxxxxxxxxx/applications/:application.json"
    to = "/.netlify/builders/___netlify-odb-handler"
    status = 200

    [[context.HEAD.redirects]]
    from = "/_next/data/xxxxxxxxxxxx/products/:category.json"
    to = "/.netlify/builders/___netlify-odb-handler"
    status = 200

    [[context.HEAD.redirects]]
    from = "/_next/data/xxxxxxxxxxxx/:slug.json"
    to = "/.netlify/builders/___netlify-odb-handler"
    status = 200

    [[context.HEAD.redirects]]
    from = "/_next/data/xxxxxxxxxxxx/applications/:application/:subapplication.json"
    to = "/.netlify/builders/___netlify-odb-handler"
    status = 200

    [[context.HEAD.redirects]]
    from = "/_next/data/xxxxxxxxxxxx/products/:category/:subcategory/:product.json"
    to = "/.netlify/builders/___netlify-odb-handler"
    status = 200

    [[context.HEAD.redirects]]
    from = "/_next/data/xxxxxxxxxxxx/vacancies/:slug.json"
    to = "/.netlify/builders/___netlify-odb-handler"
    status = 200

    [[context.HEAD.redirects]]
    from = "/_next/data/xxxxxxxxxxxx/products/:category/:subcategory.json"
    to = "/.netlify/builders/___netlify-odb-handler"
    status = 200

    [[context.HEAD.redirects]]
    from = "/media/:slug"
    to = "/.netlify/builders/___netlify-odb-handler"
    status = 200

    [[context.HEAD.redirects]]
    from = "/applications/:application"
    to = "/.netlify/builders/___netlify-odb-handler"
    status = 200

    [[context.HEAD.redirects]]
    from = "/products/:category"
    to = "/.netlify/builders/___netlify-odb-handler"
    status = 200

    [[context.HEAD.redirects]]
    from = "/:slug"
    to = "/.netlify/builders/___netlify-odb-handler"
    status = 200

    [[context.HEAD.redirects]]
    from = "/applications/:application/:subapplication"
    to = "/.netlify/builders/___netlify-odb-handler"
    status = 200

    [[context.HEAD.redirects]]
    from = "/products/:category/:subcategory/:product"
    to = "/.netlify/builders/___netlify-odb-handler"
    status = 200

    [[context.HEAD.redirects]]
    from = "/vacancies/:slug"
    to = "/.netlify/builders/___netlify-odb-handler"
    status = 200

    [[context.HEAD.redirects]]
    from = "/products/:category/:subcategory"
    to = "/.netlify/builders/___netlify-odb-handler"
    status = 200

    [[context.HEAD.redirects]]
    from = "/*"
    to = "/.netlify/functions/___netlify-handler"
    status = 200

So it looks like this one will be the culprit:

[[redirects]]
from = "/:slug"
to = "/.netlify/builders/___netlify-odb-handler"
status = 200

We have fallback: "blocking" on the top-level inner pages which are serve at /:slug like /about-us etc.

We also have some specific pages which are SSR'd like /search-results or /media which need access to the query string.

Example pages structure:

image

@rshackleton
Copy link
Author

Ok, have a repro for it now: https://github.com/rshackleton/nextjs-query-string-issue

No Query String: https://nextjs-query-string-issue.netlify.app/example-ssr-page?test=1
Has Query String: https://61c34e476a7c1f426450c292--nextjs-query-string-issue.netlify.app/example-ssr-page?test=1

The second link was the build before I added a top-level route for [slug].js with fallback: "loading".

@ascorbic
Copy link
Contributor

That would explain it, yes. Would I be right that /media/slug is also fallback=blocking and that it's /media that's the problem? I am going to need to work out how to handle these scenarios better where there are specific exceptions that match another more generic rule. Right now we just rely on all non-matching routes falling through and matching the final root-level splat rewrite. It looks like I'm goign to need to add specific rules for SSR routes too.

There is a workaround though that should work for now. If you add your own rewrites to your netlify.toml this will take precedence over the root-level slug rule.

[[redirects]]
from = "/search-results"
to = "/.netlify/builders/___netlify-handler"
status = 200

[[redirects]]
from = "/media"
to = "/.netlify/builders/___netlify-handler"
status = 200

@rshackleton
Copy link
Author

Yeah, the structure is this:

image

Path Render/Fallback
/:slug getStaticProps & blocking
/media getServerSideProps
/media/:slug getStaticProps & blocking

I'm going on leave for Christmas as of now so I won't be able to review the workaround but it makes sense, I'll try it in the new year. Happy Holidays!

@ascorbic
Copy link
Contributor

Me too, so have a good one! I'll put a fix out in the new year.

@rshackleton
Copy link
Author

@ascorbic just confirming that 4.1.2 fixed this issue for us, thanks for your hard work!

@ascorbic
Copy link
Contributor

Great news! Turned out to be a lot more complicated than I'd thought

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
type: bug code to address defects in shipped code
Projects
None yet
Development

Successfully merging a pull request may close this issue.

2 participants