Skip to content

[Bug]: Middleware returns cached response when using getStaticPaths and/or revalidate #1114

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
1 of 2 tasks
hrishikesh-k opened this issue Jan 12, 2022 · 3 comments · Fixed by #1171
Closed
1 of 2 tasks
Labels
type: bug code to address defects in shipped code

Comments

@hrishikesh-k
Copy link

Summary

The content served by a middleware, gets routed through a function. Immediately after a build, it returns correct response. However, after some time, the function starts returning cached content.

This was reported by a Pro user: https://netlify.zendesk.com/agent/tickets/77373 (Internal only).

All the files included in this issue are provided by them.

Steps to reproduce

Please refer to the ticket for the URLs to test as it might contain sensitive info (considering it's protected behind an auth).

A link to a reproduction repository

No response

Plugin version

4.1.0

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?

No response

Your netlify.toml file

netlify.toml
[[redirects]]
  from = "/"
  to = "/en"
  force = true

[[redirects]]
  from = "/catchAll"
  to = "/en"
  force = true

[[redirects]]
  from = "/catchAll/*"
  to = "/en/:splat"
  force = true

[[redirects]]
  from = "/404"
  to = "/en"
  force = true

[[headers]]
  for = "/*"
  [headers.values]
  X-XSS-Protection = "1; mode=block"

[[headers]]
  for = "/*"
  [headers.values]
    X-Content-Type-Options = "nosniff"
    Access-Control-Allow-Origin = "*"
    Cache-Control = "private"

[[headers]]
  for = "*.js" # js files should be set this way
  [headers.values]
    Cache-Control = "public, max-age=604800"

[[headers]]
  for = "*.css" # css files too
  [headers.values]
    Cache-Control = "public, max-age=604800"

[[headers]]
  for = "*.gif" # gif files too
  [headers.values]
    Cache-Control = "public, max-age=604800"

[context.deploy-preview.environment]
  NEXT_PUBLIC_PREVIEW_ALWAYS = "true"

Your public/_redirects file

_redirects
N/A

Your next.config.js file

next.config.js
module.exports = {
  assetPrefix:
    process.env.NODE_ENV === "development" || process.env.NEXT_PUBLIC_PREVIEW_ALWAYS == "true"
      ? ""
      : "https://thenextbeat.dj/",
  i18n: {
    localeDetection: true,
    locales: ["en", "nl", "fr", "de", "es"],
    // This is the catchAll locale you don't want to used. It's redirected automatically with redirects;
    // Credit from feature request thread at github: https://github.com/vercel/next.js/discussions/18419
    defaultLocale: "en",
  },
  async headers() {
    return [
      {
        source: "/:path*",
        headers: [
          {
            key: "Access-Control-Allow-Origin",
            value: "*",
          },
          {
            key: "Cache-Control",
            value: "no-store",
          },
        ],
      },
    ];
  },
  images: {
    domains: ["images.ctfassets.net", "i.vimeocdn.com"],
  },
};

Builds logs (or link to your logs)

Build logs
N/A

Function logs

Function logs
N/A

.next JSON files

required-server-files.json
{
  "version": 1,
  "config": {
    "env": {},
    "webpack": null,
    "webpackDevMiddleware": null,
    "eslint": {
      "ignoreDuringBuilds": false
    },
    "typescript": {
      "ignoreBuildErrors": false,
      "tsconfigPath": "tsconfig.json"
    },
    "distDir": ".next",
    "cleanDistDir": true,
    "assetPrefix": "",
    "configOrigin": "next.config.js",
    "useFileSystemPublicRoutes": true,
    "generateEtags": true,
    "pageExtensions": [
      "tsx",
      "ts",
      "jsx",
      "js"
    ],
    "target": "server",
    "poweredByHeader": true,
    "compress": false,
    "analyticsId": "",
    "images": {
      "deviceSizes": [
        640,
        750,
        828,
        1080,
        1200,
        1920,
        2048,
        3840
      ],
      "imageSizes": [
        16,
        32,
        48,
        64,
        96,
        128,
        256,
        384
      ],
      "path": "/_next/image",
      "loader": "default",
      "domains": [
        "images.ctfassets.net",
        "i.vimeocdn.com"
      ],
      "disableStaticImages": false,
      "minimumCacheTTL": 60,
      "formats": [
        "image/webp"
      ]
    },
    "devIndicators": {
      "buildActivity": true,
      "buildActivityPosition": "bottom-right"
    },
    "onDemandEntries": {
      "maxInactiveAge": 15000,
      "pagesBufferLength": 2
    },
    "amp": {
      "canonicalBase": ""
    },
    "basePath": "",
    "sassOptions": {},
    "trailingSlash": false,
    "i18n": {
      "localeDetection": true,
      "locales": [
        "en",
        "nl",
        "fr",
        "de",
        "es"
      ],
      "defaultLocale": "en"
    },
    "productionBrowserSourceMaps": false,
    "optimizeFonts": true,
    "excludeDefaultMomentLocales": true,
    "serverRuntimeConfig": {},
    "publicRuntimeConfig": {},
    "reactStrictMode": false,
    "httpAgentOptions": {
      "keepAlive": true
    },
    "outputFileTracing": true,
    "staticPageGenerationTimeout": 60,
    "swcMinify": false,
    "experimental": {
      "cpus": 7,
      "sharedPool": true,
      "plugins": false,
      "profiling": false,
      "isrFlushToDisk": true,
      "workerThreads": false,
      "pageEnv": false,
      "optimizeImages": false,
      "optimizeCss": false,
      "scrollRestoration": false,
      "externalDir": false,
      "reactRoot": false,
      "disableOptimizedLoading": false,
      "gzipSize": true,
      "swcFileReading": true,
      "craCompat": false,
      "esmExternals": true,
      "isrMemoryCacheSize": 52428800,
      "concurrentFeatures": false,
      "serverComponents": false,
      "fullySpecified": false,
      "outputFileTracingRoot": "",
      "outputStandalone": false
    },
    "configFileName": "next.config.js"
  },
  "appDir": "/Users/stefcoenen/BP/the-next-beat-fe",
  "files": [
    ".next/routes-manifest.json",
    ".next/server/pages-manifest.json",
    ".next/build-manifest.json",
    ".next/prerender-manifest.json",
    ".next/server/middleware-manifest.json",
    ".next/react-loadable-manifest.json",
    ".next/server/font-manifest.json",
    ".next/BUILD_ID"
  ],
  "ignore": [
    "node_modules/next/dist/compiled/@ampproject/toolbox-optimizer/**/*"
  ]
}
routes-manifest.json
{
  "version": 3,
  "pages404": true,
  "basePath": "",
  "redirects": [
    {
      "source": "/:path+/",
      "destination": "/:path+",
      "locale": false,
      "internal": true,
      "statusCode": 308,
      "regex": "^(?:/((?:[^/]+?)(?:/(?:[^/]+?))*))/$"
    }
  ],
  "headers": [
    {
      "source": "/:nextInternalLocale(en|nl|fr|de|es)/:path*",
      "headers": [
        {
          "key": "Access-Control-Allow-Origin",
          "value": "*"
        },
        {
          "key": "Cache-Control",
          "value": "no-store"
        }
      ],
      "regex": "^(?:/(en|nl|fr|de|es))(?:/((?:[^/]+?)(?:/(?:[^/]+?))*))?(?:/)?$"
    }
  ],
  "dynamicRoutes": [
    {
      "page": "/[[...slug]]",
      "regex": "^(?:/(.+?))?(?:/)?$",
      "routeKeys": {
        "slug": "slug"
      },
      "namedRegex": "^(?:/(?<slug>.+?))?(?:/)?$"
    }
  ],
  "staticRoutes": [
    {
      "page": "/404",
      "regex": "^/404(?:/)?$",
      "routeKeys": {},
      "namedRegex": "^/404(?:/)?$"
    },
    {
      "page": "/500",
      "regex": "^/500(?:/)?$",
      "routeKeys": {},
      "namedRegex": "^/500(?:/)?$"
    },
    {
      "page": "/account",
      "regex": "^/account(?:/)?$",
      "routeKeys": {},
      "namedRegex": "^/account(?:/)?$"
    },
    {
      "page": "/account/account-deleted-verification",
      "regex": "^/account/account\\-deleted\\-verification(?:/)?$",
      "routeKeys": {},
      "namedRegex": "^/account/account\\-deleted\\-verification(?:/)?$"
    },
    {
      "page": "/account/delete",
      "regex": "^/account/delete(?:/)?$",
      "routeKeys": {},
      "namedRegex": "^/account/delete(?:/)?$"
    },
    {
      "page": "/account/edit",
      "regex": "^/account/edit(?:/)?$",
      "routeKeys": {},
      "namedRegex": "^/account/edit(?:/)?$"
    },
    {
      "page": "/account/edit-password",
      "regex": "^/account/edit\\-password(?:/)?$",
      "routeKeys": {},
      "namedRegex": "^/account/edit\\-password(?:/)?$"
    },
    {
      "page": "/account/email-verification-complete",
      "regex": "^/account/email\\-verification\\-complete(?:/)?$",
      "routeKeys": {},
      "namedRegex": "^/account/email\\-verification\\-complete(?:/)?$"
    },
    {
      "page": "/account/email-verification-duration-expired",
      "regex": "^/account/email\\-verification\\-duration\\-expired(?:/)?$",
      "routeKeys": {},
      "namedRegex": "^/account/email\\-verification\\-duration\\-expired(?:/)?$"
    },
    {
      "page": "/account/email-verification-failed",
      "regex": "^/account/email\\-verification\\-failed(?:/)?$",
      "routeKeys": {},
      "namedRegex": "^/account/email\\-verification\\-failed(?:/)?$"
    },
    {
      "page": "/account/parental-approval",
      "regex": "^/account/parental\\-approval(?:/)?$",
      "routeKeys": {},
      "namedRegex": "^/account/parental\\-approval(?:/)?$"
    },
    {
      "page": "/account/parental-approval-confirm-email",
      "regex": "^/account/parental\\-approval\\-confirm\\-email(?:/)?$",
      "routeKeys": {},
      "namedRegex": "^/account/parental\\-approval\\-confirm\\-email(?:/)?$"
    },
    {
      "page": "/account/password-forgot",
      "regex": "^/account/password\\-forgot(?:/)?$",
      "routeKeys": {},
      "namedRegex": "^/account/password\\-forgot(?:/)?$"
    },
    {
      "page": "/account/password-forgotten",
      "regex": "^/account/password\\-forgotten(?:/)?$",
      "routeKeys": {},
      "namedRegex": "^/account/password\\-forgotten(?:/)?$"
    },
    {
      "page": "/account/sign-in",
      "regex": "^/account/sign\\-in(?:/)?$",
      "routeKeys": {},
      "namedRegex": "^/account/sign\\-in(?:/)?$"
    },
    {
      "page": "/account/sign-out",
      "regex": "^/account/sign\\-out(?:/)?$",
      "routeKeys": {},
      "namedRegex": "^/account/sign\\-out(?:/)?$"
    },
    {
      "page": "/account/sign-up",
      "regex": "^/account/sign\\-up(?:/)?$",
      "routeKeys": {},
      "namedRegex": "^/account/sign\\-up(?:/)?$"
    }
  ],
  "dataRoutes": [
    {
      "page": "/404",
      "dataRouteRegex": "^/_next/data/nVTOBJpUcqSKFF3psma5T/404.json$"
    },
    {
      "page": "/500",
      "dataRouteRegex": "^/_next/data/nVTOBJpUcqSKFF3psma5T/500.json$"
    },
    {
      "page": "/account",
      "dataRouteRegex": "^/_next/data/nVTOBJpUcqSKFF3psma5T/account.json$"
    },
    {
      "page": "/account/account-deleted-verification",
      "dataRouteRegex": "^/_next/data/nVTOBJpUcqSKFF3psma5T/account/account-deleted-verification.json$"
    },
    {
      "page": "/account/delete",
      "dataRouteRegex": "^/_next/data/nVTOBJpUcqSKFF3psma5T/account/delete.json$"
    },
    {
      "page": "/account/edit",
      "dataRouteRegex": "^/_next/data/nVTOBJpUcqSKFF3psma5T/account/edit.json$"
    },
    {
      "page": "/account/edit-password",
      "dataRouteRegex": "^/_next/data/nVTOBJpUcqSKFF3psma5T/account/edit-password.json$"
    },
    {
      "page": "/account/email-verification-complete",
      "dataRouteRegex": "^/_next/data/nVTOBJpUcqSKFF3psma5T/account/email-verification-complete.json$"
    },
    {
      "page": "/account/email-verification-duration-expired",
      "dataRouteRegex": "^/_next/data/nVTOBJpUcqSKFF3psma5T/account/email-verification-duration-expired.json$"
    },
    {
      "page": "/account/email-verification-failed",
      "dataRouteRegex": "^/_next/data/nVTOBJpUcqSKFF3psma5T/account/email-verification-failed.json$"
    },
    {
      "page": "/account/parental-approval",
      "dataRouteRegex": "^/_next/data/nVTOBJpUcqSKFF3psma5T/account/parental-approval.json$"
    },
    {
      "page": "/account/parental-approval-confirm-email",
      "dataRouteRegex": "^/_next/data/nVTOBJpUcqSKFF3psma5T/account/parental-approval-confirm-email.json$"
    },
    {
      "page": "/account/password-forgot",
      "dataRouteRegex": "^/_next/data/nVTOBJpUcqSKFF3psma5T/account/password-forgot.json$"
    },
    {
      "page": "/account/password-forgotten",
      "dataRouteRegex": "^/_next/data/nVTOBJpUcqSKFF3psma5T/account/password-forgotten.json$"
    },
    {
      "page": "/account/sign-in",
      "dataRouteRegex": "^/_next/data/nVTOBJpUcqSKFF3psma5T/account/sign-in.json$"
    },
    {
      "page": "/account/sign-out",
      "dataRouteRegex": "^/_next/data/nVTOBJpUcqSKFF3psma5T/account/sign-out.json$"
    },
    {
      "page": "/account/sign-up",
      "dataRouteRegex": "^/_next/data/nVTOBJpUcqSKFF3psma5T/account/sign-up.json$"
    },
    {
      "page": "/[[...slug]]",
      "routeKeys": {
        "slug": "slug"
      },
      "dataRouteRegex": "^/_next/data/nVTOBJpUcqSKFF3psma5T(?:/(.+?))?\\.json$",
      "namedDataRouteRegex": "^/_next/data/nVTOBJpUcqSKFF3psma5T(?:/(?<slug>.+?))?\\.json$"
    }
  ],
  "i18n": {
    "localeDetection": true,
    "locales": [
      "en",
      "nl",
      "fr",
      "de",
      "es"
    ],
    "defaultLocale": "en"
  },
  "rewrites": []
}
prerender-manifest.json
{
  "version": 3,
  "routes": {
    "/en/account/edit": {
      "initialRevalidateSeconds": false,
      "srcRoute": null,
      "dataRoute": "/_next/data/nVTOBJpUcqSKFF3psma5T/account/edit.json"
    },
    "/nl/account/edit": {
      "initialRevalidateSeconds": false,
      "srcRoute": null,
      "dataRoute": "/_next/data/nVTOBJpUcqSKFF3psma5T/account/edit.json"
    },
    "/fr/account/edit": {
      "initialRevalidateSeconds": false,
      "srcRoute": null,
      "dataRoute": "/_next/data/nVTOBJpUcqSKFF3psma5T/account/edit.json"
    },
    "/de/account/edit": {
      "initialRevalidateSeconds": false,
      "srcRoute": null,
      "dataRoute": "/_next/data/nVTOBJpUcqSKFF3psma5T/account/edit.json"
    },
    "/es/account/edit": {
      "initialRevalidateSeconds": false,
      "srcRoute": null,
      "dataRoute": "/_next/data/nVTOBJpUcqSKFF3psma5T/account/edit.json"
    },
    "/en/account/email-verification-complete": {
      "initialRevalidateSeconds": false,
      "srcRoute": null,
      "dataRoute": "/_next/data/nVTOBJpUcqSKFF3psma5T/account/email-verification-complete.json"
    },
    "/nl/account/email-verification-complete": {
      "initialRevalidateSeconds": false,
      "srcRoute": null,
      "dataRoute": "/_next/data/nVTOBJpUcqSKFF3psma5T/account/email-verification-complete.json"
    },
    "/fr/account/email-verification-complete": {
      "initialRevalidateSeconds": false,
      "srcRoute": null,
      "dataRoute": "/_next/data/nVTOBJpUcqSKFF3psma5T/account/email-verification-complete.json"
    },
    "/de/account/email-verification-complete": {
      "initialRevalidateSeconds": false,
      "srcRoute": null,
      "dataRoute": "/_next/data/nVTOBJpUcqSKFF3psma5T/account/email-verification-complete.json"
    },
    "/es/account/email-verification-complete": {
      "initialRevalidateSeconds": false,
      "srcRoute": null,
      "dataRoute": "/_next/data/nVTOBJpUcqSKFF3psma5T/account/email-verification-complete.json"
    },
    "/en/account/email-verification-duration-expired": {
      "initialRevalidateSeconds": false,
      "srcRoute": null,
      "dataRoute": "/_next/data/nVTOBJpUcqSKFF3psma5T/account/email-verification-duration-expired.json"
    },
    "/nl/account/email-verification-duration-expired": {
      "initialRevalidateSeconds": false,
      "srcRoute": null,
      "dataRoute": "/_next/data/nVTOBJpUcqSKFF3psma5T/account/email-verification-duration-expired.json"
    },
    "/fr/account/email-verification-duration-expired": {
      "initialRevalidateSeconds": false,
      "srcRoute": null,
      "dataRoute": "/_next/data/nVTOBJpUcqSKFF3psma5T/account/email-verification-duration-expired.json"
    },
    "/de/account/email-verification-duration-expired": {
      "initialRevalidateSeconds": false,
      "srcRoute": null,
      "dataRoute": "/_next/data/nVTOBJpUcqSKFF3psma5T/account/email-verification-duration-expired.json"
    },
    "/es/account/email-verification-duration-expired": {
      "initialRevalidateSeconds": false,
      "srcRoute": null,
      "dataRoute": "/_next/data/nVTOBJpUcqSKFF3psma5T/account/email-verification-duration-expired.json"
    },
    "/en/account/email-verification-failed": {
      "initialRevalidateSeconds": false,
      "srcRoute": null,
      "dataRoute": "/_next/data/nVTOBJpUcqSKFF3psma5T/account/email-verification-failed.json"
    },
    "/nl/account/email-verification-failed": {
      "initialRevalidateSeconds": false,
      "srcRoute": null,
      "dataRoute": "/_next/data/nVTOBJpUcqSKFF3psma5T/account/email-verification-failed.json"
    },
    "/fr/account/email-verification-failed": {
      "initialRevalidateSeconds": false,
      "srcRoute": null,
      "dataRoute": "/_next/data/nVTOBJpUcqSKFF3psma5T/account/email-verification-failed.json"
    },
    "/de/account/email-verification-failed": {
      "initialRevalidateSeconds": false,
      "srcRoute": null,
      "dataRoute": "/_next/data/nVTOBJpUcqSKFF3psma5T/account/email-verification-failed.json"
    },
    "/es/account/email-verification-failed": {
      "initialRevalidateSeconds": false,
      "srcRoute": null,
      "dataRoute": "/_next/data/nVTOBJpUcqSKFF3psma5T/account/email-verification-failed.json"
    },
    "/en/account/edit-password": {
      "initialRevalidateSeconds": false,
      "srcRoute": null,
      "dataRoute": "/_next/data/nVTOBJpUcqSKFF3psma5T/account/edit-password.json"
    },
    "/nl/account/edit-password": {
      "initialRevalidateSeconds": false,
      "srcRoute": null,
      "dataRoute": "/_next/data/nVTOBJpUcqSKFF3psma5T/account/edit-password.json"
    },
    "/fr/account/edit-password": {
      "initialRevalidateSeconds": false,
      "srcRoute": null,
      "dataRoute": "/_next/data/nVTOBJpUcqSKFF3psma5T/account/edit-password.json"
    },
    "/de/account/edit-password": {
      "initialRevalidateSeconds": false,
      "srcRoute": null,
      "dataRoute": "/_next/data/nVTOBJpUcqSKFF3psma5T/account/edit-password.json"
    },
    "/es/account/edit-password": {
      "initialRevalidateSeconds": false,
      "srcRoute": null,
      "dataRoute": "/_next/data/nVTOBJpUcqSKFF3psma5T/account/edit-password.json"
    },
    "/en/account/parental-approval-confirm-email": {
      "initialRevalidateSeconds": false,
      "srcRoute": null,
      "dataRoute": "/_next/data/nVTOBJpUcqSKFF3psma5T/account/parental-approval-confirm-email.json"
    },
    "/nl/account/parental-approval-confirm-email": {
      "initialRevalidateSeconds": false,
      "srcRoute": null,
      "dataRoute": "/_next/data/nVTOBJpUcqSKFF3psma5T/account/parental-approval-confirm-email.json"
    },
    "/fr/account/parental-approval-confirm-email": {
      "initialRevalidateSeconds": false,
      "srcRoute": null,
      "dataRoute": "/_next/data/nVTOBJpUcqSKFF3psma5T/account/parental-approval-confirm-email.json"
    },
    "/de/account/parental-approval-confirm-email": {
      "initialRevalidateSeconds": false,
      "srcRoute": null,
      "dataRoute": "/_next/data/nVTOBJpUcqSKFF3psma5T/account/parental-approval-confirm-email.json"
    },
    "/es/account/parental-approval-confirm-email": {
      "initialRevalidateSeconds": false,
      "srcRoute": null,
      "dataRoute": "/_next/data/nVTOBJpUcqSKFF3psma5T/account/parental-approval-confirm-email.json"
    },
    "/en/account": {
      "initialRevalidateSeconds": false,
      "srcRoute": null,
      "dataRoute": "/_next/data/nVTOBJpUcqSKFF3psma5T/account.json"
    },
    "/nl/account": {
      "initialRevalidateSeconds": false,
      "srcRoute": null,
      "dataRoute": "/_next/data/nVTOBJpUcqSKFF3psma5T/account.json"
    },
    "/fr/account": {
      "initialRevalidateSeconds": false,
      "srcRoute": null,
      "dataRoute": "/_next/data/nVTOBJpUcqSKFF3psma5T/account.json"
    },
    "/de/account": {
      "initialRevalidateSeconds": false,
      "srcRoute": null,
      "dataRoute": "/_next/data/nVTOBJpUcqSKFF3psma5T/account.json"
    },
    "/es/account": {
      "initialRevalidateSeconds": false,
      "srcRoute": null,
      "dataRoute": "/_next/data/nVTOBJpUcqSKFF3psma5T/account.json"
    },
    "/en/account/parental-approval": {
      "initialRevalidateSeconds": false,
      "srcRoute": null,
      "dataRoute": "/_next/data/nVTOBJpUcqSKFF3psma5T/account/parental-approval.json"
    },
    "/nl/account/parental-approval": {
      "initialRevalidateSeconds": false,
      "srcRoute": null,
      "dataRoute": "/_next/data/nVTOBJpUcqSKFF3psma5T/account/parental-approval.json"
    },
    "/fr/account/parental-approval": {
      "initialRevalidateSeconds": false,
      "srcRoute": null,
      "dataRoute": "/_next/data/nVTOBJpUcqSKFF3psma5T/account/parental-approval.json"
    },
    "/de/account/parental-approval": {
      "initialRevalidateSeconds": false,
      "srcRoute": null,
      "dataRoute": "/_next/data/nVTOBJpUcqSKFF3psma5T/account/parental-approval.json"
    },
    "/es/account/parental-approval": {
      "initialRevalidateSeconds": false,
      "srcRoute": null,
      "dataRoute": "/_next/data/nVTOBJpUcqSKFF3psma5T/account/parental-approval.json"
    },
    "/en/account/password-forgotten": {
      "initialRevalidateSeconds": false,
      "srcRoute": null,
      "dataRoute": "/_next/data/nVTOBJpUcqSKFF3psma5T/account/password-forgotten.json"
    },
    "/nl/account/password-forgotten": {
      "initialRevalidateSeconds": false,
      "srcRoute": null,
      "dataRoute": "/_next/data/nVTOBJpUcqSKFF3psma5T/account/password-forgotten.json"
    },
    "/fr/account/password-forgotten": {
      "initialRevalidateSeconds": false,
      "srcRoute": null,
      "dataRoute": "/_next/data/nVTOBJpUcqSKFF3psma5T/account/password-forgotten.json"
    },
    "/de/account/password-forgotten": {
      "initialRevalidateSeconds": false,
      "srcRoute": null,
      "dataRoute": "/_next/data/nVTOBJpUcqSKFF3psma5T/account/password-forgotten.json"
    },
    "/es/account/password-forgotten": {
      "initialRevalidateSeconds": false,
      "srcRoute": null,
      "dataRoute": "/_next/data/nVTOBJpUcqSKFF3psma5T/account/password-forgotten.json"
    },
    "/en/account/sign-in": {
      "initialRevalidateSeconds": false,
      "srcRoute": null,
      "dataRoute": "/_next/data/nVTOBJpUcqSKFF3psma5T/account/sign-in.json"
    },
    "/nl/account/sign-in": {
      "initialRevalidateSeconds": false,
      "srcRoute": null,
      "dataRoute": "/_next/data/nVTOBJpUcqSKFF3psma5T/account/sign-in.json"
    },
    "/fr/account/sign-in": {
      "initialRevalidateSeconds": false,
      "srcRoute": null,
      "dataRoute": "/_next/data/nVTOBJpUcqSKFF3psma5T/account/sign-in.json"
    },
    "/de/account/sign-in": {
      "initialRevalidateSeconds": false,
      "srcRoute": null,
      "dataRoute": "/_next/data/nVTOBJpUcqSKFF3psma5T/account/sign-in.json"
    },
    "/es/account/sign-in": {
      "initialRevalidateSeconds": false,
      "srcRoute": null,
      "dataRoute": "/_next/data/nVTOBJpUcqSKFF3psma5T/account/sign-in.json"
    },
    "/en/account/password-forgot": {
      "initialRevalidateSeconds": false,
      "srcRoute": null,
      "dataRoute": "/_next/data/nVTOBJpUcqSKFF3psma5T/account/password-forgot.json"
    },
    "/nl/account/password-forgot": {
      "initialRevalidateSeconds": false,
      "srcRoute": null,
      "dataRoute": "/_next/data/nVTOBJpUcqSKFF3psma5T/account/password-forgot.json"
    },
    "/fr/account/password-forgot": {
      "initialRevalidateSeconds": false,
      "srcRoute": null,
      "dataRoute": "/_next/data/nVTOBJpUcqSKFF3psma5T/account/password-forgot.json"
    },
    "/de/account/password-forgot": {
      "initialRevalidateSeconds": false,
      "srcRoute": null,
      "dataRoute": "/_next/data/nVTOBJpUcqSKFF3psma5T/account/password-forgot.json"
    },
    "/es/account/password-forgot": {
      "initialRevalidateSeconds": false,
      "srcRoute": null,
      "dataRoute": "/_next/data/nVTOBJpUcqSKFF3psma5T/account/password-forgot.json"
    },
    "/en/account/sign-out": {
      "initialRevalidateSeconds": false,
      "srcRoute": null,
      "dataRoute": "/_next/data/nVTOBJpUcqSKFF3psma5T/account/sign-out.json"
    },
    "/nl/account/sign-out": {
      "initialRevalidateSeconds": false,
      "srcRoute": null,
      "dataRoute": "/_next/data/nVTOBJpUcqSKFF3psma5T/account/sign-out.json"
    },
    "/fr/account/sign-out": {
      "initialRevalidateSeconds": false,
      "srcRoute": null,
      "dataRoute": "/_next/data/nVTOBJpUcqSKFF3psma5T/account/sign-out.json"
    },
    "/de/account/sign-out": {
      "initialRevalidateSeconds": false,
      "srcRoute": null,
      "dataRoute": "/_next/data/nVTOBJpUcqSKFF3psma5T/account/sign-out.json"
    },
    "/es/account/sign-out": {
      "initialRevalidateSeconds": false,
      "srcRoute": null,
      "dataRoute": "/_next/data/nVTOBJpUcqSKFF3psma5T/account/sign-out.json"
    },
    "/en/account/sign-up": {
      "initialRevalidateSeconds": false,
      "srcRoute": null,
      "dataRoute": "/_next/data/nVTOBJpUcqSKFF3psma5T/account/sign-up.json"
    },
    "/nl/account/sign-up": {
      "initialRevalidateSeconds": false,
      "srcRoute": null,
      "dataRoute": "/_next/data/nVTOBJpUcqSKFF3psma5T/account/sign-up.json"
    },
    "/fr/account/sign-up": {
      "initialRevalidateSeconds": false,
      "srcRoute": null,
      "dataRoute": "/_next/data/nVTOBJpUcqSKFF3psma5T/account/sign-up.json"
    },
    "/de/account/sign-up": {
      "initialRevalidateSeconds": false,
      "srcRoute": null,
      "dataRoute": "/_next/data/nVTOBJpUcqSKFF3psma5T/account/sign-up.json"
    },
    "/es/account/sign-up": {
      "initialRevalidateSeconds": false,
      "srcRoute": null,
      "dataRoute": "/_next/data/nVTOBJpUcqSKFF3psma5T/account/sign-up.json"
    },
    "/en/account/account-deleted-verification": {
      "initialRevalidateSeconds": false,
      "srcRoute": null,
      "dataRoute": "/_next/data/nVTOBJpUcqSKFF3psma5T/account/account-deleted-verification.json"
    },
    "/nl/account/account-deleted-verification": {
      "initialRevalidateSeconds": false,
      "srcRoute": null,
      "dataRoute": "/_next/data/nVTOBJpUcqSKFF3psma5T/account/account-deleted-verification.json"
    },
    "/fr/account/account-deleted-verification": {
      "initialRevalidateSeconds": false,
      "srcRoute": null,
      "dataRoute": "/_next/data/nVTOBJpUcqSKFF3psma5T/account/account-deleted-verification.json"
    },
    "/de/account/account-deleted-verification": {
      "initialRevalidateSeconds": false,
      "srcRoute": null,
      "dataRoute": "/_next/data/nVTOBJpUcqSKFF3psma5T/account/account-deleted-verification.json"
    },
    "/es/account/account-deleted-verification": {
      "initialRevalidateSeconds": false,
      "srcRoute": null,
      "dataRoute": "/_next/data/nVTOBJpUcqSKFF3psma5T/account/account-deleted-verification.json"
    },
    "/en/account/delete": {
      "initialRevalidateSeconds": false,
      "srcRoute": null,
      "dataRoute": "/_next/data/nVTOBJpUcqSKFF3psma5T/account/delete.json"
    },
    "/nl/account/delete": {
      "initialRevalidateSeconds": false,
      "srcRoute": null,
      "dataRoute": "/_next/data/nVTOBJpUcqSKFF3psma5T/account/delete.json"
    },
    "/fr/account/delete": {
      "initialRevalidateSeconds": false,
      "srcRoute": null,
      "dataRoute": "/_next/data/nVTOBJpUcqSKFF3psma5T/account/delete.json"
    },
    "/de/account/delete": {
      "initialRevalidateSeconds": false,
      "srcRoute": null,
      "dataRoute": "/_next/data/nVTOBJpUcqSKFF3psma5T/account/delete.json"
    },
    "/es/account/delete": {
      "initialRevalidateSeconds": false,
      "srcRoute": null,
      "dataRoute": "/_next/data/nVTOBJpUcqSKFF3psma5T/account/delete.json"
    },
    "/en/404": {
      "initialRevalidateSeconds": false,
      "srcRoute": null,
      "dataRoute": "/_next/data/nVTOBJpUcqSKFF3psma5T/404.json"
    },
    "/nl/404": {
      "initialRevalidateSeconds": false,
      "srcRoute": null,
      "dataRoute": "/_next/data/nVTOBJpUcqSKFF3psma5T/404.json"
    },
    "/fr/404": {
      "initialRevalidateSeconds": false,
      "srcRoute": null,
      "dataRoute": "/_next/data/nVTOBJpUcqSKFF3psma5T/404.json"
    },
    "/de/404": {
      "initialRevalidateSeconds": false,
      "srcRoute": null,
      "dataRoute": "/_next/data/nVTOBJpUcqSKFF3psma5T/404.json"
    },
    "/es/404": {
      "initialRevalidateSeconds": false,
      "srcRoute": null,
      "dataRoute": "/_next/data/nVTOBJpUcqSKFF3psma5T/404.json"
    },
    "/en/500": {
      "initialRevalidateSeconds": false,
      "srcRoute": null,
      "dataRoute": "/_next/data/nVTOBJpUcqSKFF3psma5T/500.json"
    },
    "/nl/500": {
      "initialRevalidateSeconds": false,
      "srcRoute": null,
      "dataRoute": "/_next/data/nVTOBJpUcqSKFF3psma5T/500.json"
    },
    "/fr/500": {
      "initialRevalidateSeconds": false,
      "srcRoute": null,
      "dataRoute": "/_next/data/nVTOBJpUcqSKFF3psma5T/500.json"
    },
    "/de/500": {
      "initialRevalidateSeconds": false,
      "srcRoute": null,
      "dataRoute": "/_next/data/nVTOBJpUcqSKFF3psma5T/500.json"
    },
    "/es/500": {
      "initialRevalidateSeconds": false,
      "srcRoute": null,
      "dataRoute": "/_next/data/nVTOBJpUcqSKFF3psma5T/500.json"
    },
    "/de/JETZE-KAUFEN": {
      "initialRevalidateSeconds": false,
      "srcRoute": "/[[...slug]]",
      "dataRoute": "/_next/data/nVTOBJpUcqSKFF3psma5T/de/JETZE-KAUFEN.json"
    },
    "/en/where-to-buy": {
      "initialRevalidateSeconds": false,
      "srcRoute": "/[[...slug]]",
      "dataRoute": "/_next/data/nVTOBJpUcqSKFF3psma5T/en/where-to-buy.json"
    },
    "/es/COMPRAR-AHORA": {
      "initialRevalidateSeconds": false,
      "srcRoute": "/[[...slug]]",
      "dataRoute": "/_next/data/nVTOBJpUcqSKFF3psma5T/es/COMPRAR-AHORA.json"
    },
    "/fr/ACHETEZ-MAINTENANT": {
      "initialRevalidateSeconds": false,
      "srcRoute": "/[[...slug]]",
      "dataRoute": "/_next/data/nVTOBJpUcqSKFF3psma5T/fr/ACHETEZ-MAINTENANT.json"
    },
    "/nl/KOOP-NU": {
      "initialRevalidateSeconds": false,
      "srcRoute": "/[[...slug]]",
      "dataRoute": "/_next/data/nVTOBJpUcqSKFF3psma5T/nl/KOOP-NU.json"
    },
    "/de/LERNEN": {
      "initialRevalidateSeconds": false,
      "srcRoute": "/[[...slug]]",
      "dataRoute": "/_next/data/nVTOBJpUcqSKFF3psma5T/de/LERNEN.json"
    },
    "/en/learn-page": {
      "initialRevalidateSeconds": false,
      "srcRoute": "/[[...slug]]",
      "dataRoute": "/_next/data/nVTOBJpUcqSKFF3psma5T/en/learn-page.json"
    },
    "/es/APRENDER": {
      "initialRevalidateSeconds": false,
      "srcRoute": "/[[...slug]]",
      "dataRoute": "/_next/data/nVTOBJpUcqSKFF3psma5T/es/APRENDER.json"
    },
    "/fr/APPRENDRE": {
      "initialRevalidateSeconds": false,
      "srcRoute": "/[[...slug]]",
      "dataRoute": "/_next/data/nVTOBJpUcqSKFF3psma5T/fr/APPRENDRE.json"
    },
    "/nl/LEER": {
      "initialRevalidateSeconds": false,
      "srcRoute": "/[[...slug]]",
      "dataRoute": "/_next/data/nVTOBJpUcqSKFF3psma5T/nl/LEER.json"
    },
    "/de/GALERIE": {
      "initialRevalidateSeconds": false,
      "srcRoute": "/[[...slug]]",
      "dataRoute": "/_next/data/nVTOBJpUcqSKFF3psma5T/de/GALERIE.json"
    },
    "/en/gallery": {
      "initialRevalidateSeconds": false,
      "srcRoute": "/[[...slug]]",
      "dataRoute": "/_next/data/nVTOBJpUcqSKFF3psma5T/en/gallery.json"
    },
    "/es/GALERÍA": {
      "initialRevalidateSeconds": false,
      "srcRoute": "/[[...slug]]",
      "dataRoute": "/_next/data/nVTOBJpUcqSKFF3psma5T/es/GALERÍA.json"
    },
    "/fr/GALERIE": {
      "initialRevalidateSeconds": false,
      "srcRoute": "/[[...slug]]",
      "dataRoute": "/_next/data/nVTOBJpUcqSKFF3psma5T/fr/GALERIE.json"
    },
    "/nl/GALERIJ": {
      "initialRevalidateSeconds": false,
      "srcRoute": "/[[...slug]]",
      "dataRoute": "/_next/data/nVTOBJpUcqSKFF3psma5T/nl/GALERIJ.json"
    },
    "/de/FAQ": {
      "initialRevalidateSeconds": false,
      "srcRoute": "/[[...slug]]",
      "dataRoute": "/_next/data/nVTOBJpUcqSKFF3psma5T/de/FAQ.json"
    },
    "/en/faq": {
      "initialRevalidateSeconds": false,
      "srcRoute": "/[[...slug]]",
      "dataRoute": "/_next/data/nVTOBJpUcqSKFF3psma5T/en/faq.json"
    },
    "/es/FAQ": {
      "initialRevalidateSeconds": false,
      "srcRoute": "/[[...slug]]",
      "dataRoute": "/_next/data/nVTOBJpUcqSKFF3psma5T/es/FAQ.json"
    },
    "/fr/FAQ": {
      "initialRevalidateSeconds": false,
      "srcRoute": "/[[...slug]]",
      "dataRoute": "/_next/data/nVTOBJpUcqSKFF3psma5T/fr/FAQ.json"
    },
    "/nl/faq": {
      "initialRevalidateSeconds": false,
      "srcRoute": "/[[...slug]]",
      "dataRoute": "/_next/data/nVTOBJpUcqSKFF3psma5T/nl/faq.json"
    },
    "/de/SET-UP": {
      "initialRevalidateSeconds": false,
      "srcRoute": "/[[...slug]]",
      "dataRoute": "/_next/data/nVTOBJpUcqSKFF3psma5T/de/SET-UP.json"
    },
    "/en/SETUP": {
      "initialRevalidateSeconds": false,
      "srcRoute": "/[[...slug]]",
      "dataRoute": "/_next/data/nVTOBJpUcqSKFF3psma5T/en/SETUP.json"
    },
    "/es/CONFIGURACIÓN": {
      "initialRevalidateSeconds": false,
      "srcRoute": "/[[...slug]]",
      "dataRoute": "/_next/data/nVTOBJpUcqSKFF3psma5T/es/CONFIGURACIÓN.json"
    },
    "/fr/METTRE-EN-PLACE": {
      "initialRevalidateSeconds": false,
      "srcRoute": "/[[...slug]]",
      "dataRoute": "/_next/data/nVTOBJpUcqSKFF3psma5T/fr/METTRE-EN-PLACE.json"
    },
    "/nl/SETUP": {
      "initialRevalidateSeconds": false,
      "srcRoute": "/[[...slug]]",
      "dataRoute": "/_next/data/nVTOBJpUcqSKFF3psma5T/nl/SETUP.json"
    },
    "/de/set-up-video": {
      "initialRevalidateSeconds": false,
      "srcRoute": "/[[...slug]]",
      "dataRoute": "/_next/data/nVTOBJpUcqSKFF3psma5T/de/set-up-video.json"
    },
    "/en/set-up-video": {
      "initialRevalidateSeconds": false,
      "srcRoute": "/[[...slug]]",
      "dataRoute": "/_next/data/nVTOBJpUcqSKFF3psma5T/en/set-up-video.json"
    },
    "/es/Video-de-configuracion": {
      "initialRevalidateSeconds": false,
      "srcRoute": "/[[...slug]]",
      "dataRoute": "/_next/data/nVTOBJpUcqSKFF3psma5T/es/Video-de-configuracion.json"
    },
    "/fr/Video-d’installation": {
      "initialRevalidateSeconds": false,
      "srcRoute": "/[[...slug]]",
      "dataRoute": "/_next/data/nVTOBJpUcqSKFF3psma5T/fr/Video-d’installation.json"
    },
    "/nl/set-up-video": {
      "initialRevalidateSeconds": false,
      "srcRoute": "/[[...slug]]",
      "dataRoute": "/_next/data/nVTOBJpUcqSKFF3psma5T/nl/set-up-video.json"
    },
    "/de/bp-konto-erstellen": {
      "initialRevalidateSeconds": false,
      "srcRoute": "/[[...slug]]",
      "dataRoute": "/_next/data/nVTOBJpUcqSKFF3psma5T/de/bp-konto-erstellen.json"
    },
    "/en/create-bp-account": {
      "initialRevalidateSeconds": false,
      "srcRoute": "/[[...slug]]",
      "dataRoute": "/_next/data/nVTOBJpUcqSKFF3psma5T/en/create-bp-account.json"
    },
    "/es/Crear-cuenta-bp": {
      "initialRevalidateSeconds": false,
      "srcRoute": "/[[...slug]]",
      "dataRoute": "/_next/data/nVTOBJpUcqSKFF3psma5T/es/Crear-cuenta-bp.json"
    },
    "/fr/Creez-un-compte-bp": {
      "initialRevalidateSeconds": false,
      "srcRoute": "/[[...slug]]",
      "dataRoute": "/_next/data/nVTOBJpUcqSKFF3psma5T/fr/Creez-un-compte-bp.json"
    },
    "/nl/maak-bp-account": {
      "initialRevalidateSeconds": false,
      "srcRoute": "/[[...slug]]",
      "dataRoute": "/_next/data/nVTOBJpUcqSKFF3psma5T/nl/maak-bp-account.json"
    },
    "/de/djay-herunterladen": {
      "initialRevalidateSeconds": false,
      "srcRoute": "/[[...slug]]",
      "dataRoute": "/_next/data/nVTOBJpUcqSKFF3psma5T/de/djay-herunterladen.json"
    },
    "/en/download-djay": {
      "initialRevalidateSeconds": false,
      "srcRoute": "/[[...slug]]",
      "dataRoute": "/_next/data/nVTOBJpUcqSKFF3psma5T/en/download-djay.json"
    },
    "/es/descargar-djay": {
      "initialRevalidateSeconds": false,
      "srcRoute": "/[[...slug]]",
      "dataRoute": "/_next/data/nVTOBJpUcqSKFF3psma5T/es/descargar-djay.json"
    },
    "/fr/telechargez-djay": {
      "initialRevalidateSeconds": false,
      "srcRoute": "/[[...slug]]",
      "dataRoute": "/_next/data/nVTOBJpUcqSKFF3psma5T/fr/telechargez-djay.json"
    },
    "/nl/download-djay": {
      "initialRevalidateSeconds": false,
      "srcRoute": "/[[...slug]]",
      "dataRoute": "/_next/data/nVTOBJpUcqSKFF3psma5T/nl/download-djay.json"
    },
    "/de/wahlen-sie-beatport-oder-djay": {
      "initialRevalidateSeconds": false,
      "srcRoute": "/[[...slug]]",
      "dataRoute": "/_next/data/nVTOBJpUcqSKFF3psma5T/de/wahlen-sie-beatport-oder-djay.json"
    },
    "/en/choose-beatport-or-djay": {
      "initialRevalidateSeconds": false,
      "srcRoute": "/[[...slug]]",
      "dataRoute": "/_next/data/nVTOBJpUcqSKFF3psma5T/en/choose-beatport-or-djay.json"
    },
    "/es/eligir-beatport-o-djay": {
      "initialRevalidateSeconds": false,
      "srcRoute": "/[[...slug]]",
      "dataRoute": "/_next/data/nVTOBJpUcqSKFF3psma5T/es/eligir-beatport-o-djay.json"
    },
    "/fr/choisissez-beatport-ou-djay": {
      "initialRevalidateSeconds": false,
      "srcRoute": "/[[...slug]]",
      "dataRoute": "/_next/data/nVTOBJpUcqSKFF3psma5T/fr/choisissez-beatport-ou-djay.json"
    },
    "/nl/kies-beatport-of-djay": {
      "initialRevalidateSeconds": false,
      "srcRoute": "/[[...slug]]",
      "dataRoute": "/_next/data/nVTOBJpUcqSKFF3psma5T/nl/kies-beatport-of-djay.json"
    },
    "/de/hier-anzeigen": {
      "initialRevalidateSeconds": false,
      "srcRoute": "/[[...slug]]",
      "dataRoute": "/_next/data/nVTOBJpUcqSKFF3psma5T/de/hier-anzeigen.json"
    },
    "/en/cue-here": {
      "initialRevalidateSeconds": false,
      "srcRoute": "/[[...slug]]",
      "dataRoute": "/_next/data/nVTOBJpUcqSKFF3psma5T/en/cue-here.json"
    },
    "/es/localizarse-aqui": {
      "initialRevalidateSeconds": false,
      "srcRoute": "/[[...slug]]",
      "dataRoute": "/_next/data/nVTOBJpUcqSKFF3psma5T/es/localizarse-aqui.json"
    },
    "/fr/cue-ici": {
      "initialRevalidateSeconds": false,
      "srcRoute": "/[[...slug]]",
      "dataRoute": "/_next/data/nVTOBJpUcqSKFF3psma5T/fr/cue-ici.json"
    },
    "/nl/cue-hier": {
      "initialRevalidateSeconds": false,
      "srcRoute": "/[[...slug]]",
      "dataRoute": "/_next/data/nVTOBJpUcqSKFF3psma5T/nl/cue-hier.json"
    },
    "/de/set-up-beatport-auf-mac": {
      "initialRevalidateSeconds": false,
      "srcRoute": "/[[...slug]]",
      "dataRoute": "/_next/data/nVTOBJpUcqSKFF3psma5T/de/set-up-beatport-auf-mac.json"
    },
    "/en/setup-beatport-on-mac": {
      "initialRevalidateSeconds": false,
      "srcRoute": "/[[...slug]]",
      "dataRoute": "/_next/data/nVTOBJpUcqSKFF3psma5T/en/setup-beatport-on-mac.json"
    },
    "/es/configuracion-de-beatport-en-mac": {
      "initialRevalidateSeconds": false,
      "srcRoute": "/[[...slug]]",
      "dataRoute": "/_next/data/nVTOBJpUcqSKFF3psma5T/es/configuracion-de-beatport-en-mac.json"
    },
    "/fr/configurer-beatport-sur-mac": {
      "initialRevalidateSeconds": false,
      "srcRoute": "/[[...slug]]",
      "dataRoute": "/_next/data/nVTOBJpUcqSKFF3psma5T/fr/configurer-beatport-sur-mac.json"
    },
    "/nl/beatport-instellen-op-mac": {
      "initialRevalidateSeconds": false,
      "srcRoute": "/[[...slug]]",
      "dataRoute": "/_next/data/nVTOBJpUcqSKFF3psma5T/nl/beatport-instellen-op-mac.json"
    },
    "/de/suchen": {
      "initialRevalidateSeconds": false,
      "srcRoute": "/[[...slug]]",
      "dataRoute": "/_next/data/nVTOBJpUcqSKFF3psma5T/de/suchen.json"
    },
    "/en/search": {
      "initialRevalidateSeconds": false,
      "srcRoute": "/[[...slug]]",
      "dataRoute": "/_next/data/nVTOBJpUcqSKFF3psma5T/en/search.json"
    },
    "/es/buscar": {
      "initialRevalidateSeconds": false,
      "srcRoute": "/[[...slug]]",
      "dataRoute": "/_next/data/nVTOBJpUcqSKFF3psma5T/es/buscar.json"
    },
    "/fr/recherche": {
      "initialRevalidateSeconds": false,
      "srcRoute": "/[[...slug]]",
      "dataRoute": "/_next/data/nVTOBJpUcqSKFF3psma5T/fr/recherche.json"
    },
    "/nl/zoeken": {
      "initialRevalidateSeconds": false,
      "srcRoute": "/[[...slug]]",
      "dataRoute": "/_next/data/nVTOBJpUcqSKFF3psma5T/nl/zoeken.json"
    },
    "/de/datenschutzerklarung": {
      "initialRevalidateSeconds": false,
      "srcRoute": "/[[...slug]]",
      "dataRoute": "/_next/data/nVTOBJpUcqSKFF3psma5T/de/datenschutzerklarung.json"
    },
    "/en/privacy-policy": {
      "initialRevalidateSeconds": false,
      "srcRoute": "/[[...slug]]",
      "dataRoute": "/_next/data/nVTOBJpUcqSKFF3psma5T/en/privacy-policy.json"
    },
    "/es/política-de-privacidad": {
      "initialRevalidateSeconds": false,
      "srcRoute": "/[[...slug]]",
      "dataRoute": "/_next/data/nVTOBJpUcqSKFF3psma5T/es/política-de-privacidad.json"
    },
    "/fr/politique-de-confidentialite": {
      "initialRevalidateSeconds": false,
      "srcRoute": "/[[...slug]]",
      "dataRoute": "/_next/data/nVTOBJpUcqSKFF3psma5T/fr/politique-de-confidentialite.json"
    },
    "/nl/privacybeleid": {
      "initialRevalidateSeconds": false,
      "srcRoute": "/[[...slug]]",
      "dataRoute": "/_next/data/nVTOBJpUcqSKFF3psma5T/nl/privacybeleid.json"
    },
    "/de/set-up-beatport-auf-windows": {
      "initialRevalidateSeconds": false,
      "srcRoute": "/[[...slug]]",
      "dataRoute": "/_next/data/nVTOBJpUcqSKFF3psma5T/de/set-up-beatport-auf-windows.json"
    },
    "/en/setup-beatport-on-windows": {
      "initialRevalidateSeconds": false,
      "srcRoute": "/[[...slug]]",
      "dataRoute": "/_next/data/nVTOBJpUcqSKFF3psma5T/en/setup-beatport-on-windows.json"
    },
    "/es/configuracion-de-beatport-en-windows": {
      "initialRevalidateSeconds": false,
      "srcRoute": "/[[...slug]]",
      "dataRoute": "/_next/data/nVTOBJpUcqSKFF3psma5T/es/configuracion-de-beatport-en-windows.json"
    },
    "/fr/configurer-beatport-sur-windows": {
      "initialRevalidateSeconds": false,
      "srcRoute": "/[[...slug]]",
      "dataRoute": "/_next/data/nVTOBJpUcqSKFF3psma5T/fr/configurer-beatport-sur-windows.json"
    },
    "/nl/beatport-instellen-op-windows": {
      "initialRevalidateSeconds": false,
      "srcRoute": "/[[...slug]]",
      "dataRoute": "/_next/data/nVTOBJpUcqSKFF3psma5T/nl/beatport-instellen-op-windows.json"
    },
    "/de/set-up-video-mac-djay": {
      "initialRevalidateSeconds": false,
      "srcRoute": "/[[...slug]]",
      "dataRoute": "/_next/data/nVTOBJpUcqSKFF3psma5T/de/set-up-video-mac-djay.json"
    },
    "/en/set-up-video-body-mac-djay": {
      "initialRevalidateSeconds": false,
      "srcRoute": "/[[...slug]]",
      "dataRoute": "/_next/data/nVTOBJpUcqSKFF3psma5T/en/set-up-video-body-mac-djay.json"
    },
    "/es/configuracion-del-video-mac-djay": {
      "initialRevalidateSeconds": false,
      "srcRoute": "/[[...slug]]",
      "dataRoute": "/_next/data/nVTOBJpUcqSKFF3psma5T/es/configuracion-del-video-mac-djay.json"
    },
    "/fr/installation-video-mac-djay": {
      "initialRevalidateSeconds": false,
      "srcRoute": "/[[...slug]]",
      "dataRoute": "/_next/data/nVTOBJpUcqSKFF3psma5T/fr/installation-video-mac-djay.json"
    },
    "/nl/set-up-video-mac-djay": {
      "initialRevalidateSeconds": false,
      "srcRoute": "/[[...slug]]",
      "dataRoute": "/_next/data/nVTOBJpUcqSKFF3psma5T/nl/set-up-video-mac-djay.json"
    },
    "/de/einzelhändler": {
      "initialRevalidateSeconds": false,
      "srcRoute": "/[[...slug]]",
      "dataRoute": "/_next/data/nVTOBJpUcqSKFF3psma5T/de/einzelhändler.json"
    },
    "/en/retailers": {
      "initialRevalidateSeconds": false,
      "srcRoute": "/[[...slug]]",
      "dataRoute": "/_next/data/nVTOBJpUcqSKFF3psma5T/en/retailers.json"
    },
    "/es/minoristas": {
      "initialRevalidateSeconds": false,
      "srcRoute": "/[[...slug]]",
      "dataRoute": "/_next/data/nVTOBJpUcqSKFF3psma5T/es/minoristas.json"
    },
    "/fr/detaillants": {
      "initialRevalidateSeconds": false,
      "srcRoute": "/[[...slug]]",
      "dataRoute": "/_next/data/nVTOBJpUcqSKFF3psma5T/fr/detaillants.json"
    },
    "/nl/verkoopppunten": {
      "initialRevalidateSeconds": false,
      "srcRoute": "/[[...slug]]",
      "dataRoute": "/_next/data/nVTOBJpUcqSKFF3psma5T/nl/verkoopppunten.json"
    },
    "/de/nutzungsbedingungen": {
      "initialRevalidateSeconds": false,
      "srcRoute": "/[[...slug]]",
      "dataRoute": "/_next/data/nVTOBJpUcqSKFF3psma5T/de/nutzungsbedingungen.json"
    },
    "/en/terms-of-use": {
      "initialRevalidateSeconds": false,
      "srcRoute": "/[[...slug]]",
      "dataRoute": "/_next/data/nVTOBJpUcqSKFF3psma5T/en/terms-of-use.json"
    },
    "/es/terminis-de-uso": {
      "initialRevalidateSeconds": false,
      "srcRoute": "/[[...slug]]",
      "dataRoute": "/_next/data/nVTOBJpUcqSKFF3psma5T/es/terminis-de-uso.json"
    },
    "/fr/conditions-d'utilisation": {
      "initialRevalidateSeconds": false,
      "srcRoute": "/[[...slug]]",
      "dataRoute": "/_next/data/nVTOBJpUcqSKFF3psma5T/fr/conditions-d'utilisation.json"
    },
    "/nl/gebruiksvoorwaarden": {
      "initialRevalidateSeconds": false,
      "srcRoute": "/[[...slug]]",
      "dataRoute": "/_next/data/nVTOBJpUcqSKFF3psma5T/nl/gebruiksvoorwaarden.json"
    },
    "/de/Set-up-Video-macos": {
      "initialRevalidateSeconds": false,
      "srcRoute": "/[[...slug]]",
      "dataRoute": "/_next/data/nVTOBJpUcqSKFF3psma5T/de/Set-up-Video-macos.json"
    },
    "/en/set-up-video-macos": {
      "initialRevalidateSeconds": false,
      "srcRoute": "/[[...slug]]",
      "dataRoute": "/_next/data/nVTOBJpUcqSKFF3psma5T/en/set-up-video-macos.json"
    },
    "/es/Video-de-configuracion-macos": {
      "initialRevalidateSeconds": false,
      "srcRoute": "/[[...slug]]",
      "dataRoute": "/_next/data/nVTOBJpUcqSKFF3psma5T/es/Video-de-configuracion-macos.json"
    },
    "/fr/Video-d’installation-macos": {
      "initialRevalidateSeconds": false,
      "srcRoute": "/[[...slug]]",
      "dataRoute": "/_next/data/nVTOBJpUcqSKFF3psma5T/fr/Video-d’installation-macos.json"
    },
    "/nl/set-up-video-macos": {
      "initialRevalidateSeconds": false,
      "srcRoute": "/[[...slug]]",
      "dataRoute": "/_next/data/nVTOBJpUcqSKFF3psma5T/nl/set-up-video-macos.json"
    },
    "/de/support": {
      "initialRevalidateSeconds": false,
      "srcRoute": "/[[...slug]]",
      "dataRoute": "/_next/data/nVTOBJpUcqSKFF3psma5T/de/support.json"
    },
    "/en/support": {
      "initialRevalidateSeconds": false,
      "srcRoute": "/[[...slug]]",
      "dataRoute": "/_next/data/nVTOBJpUcqSKFF3psma5T/en/support.json"
    },
    "/es/soporte": {
      "initialRevalidateSeconds": false,
      "srcRoute": "/[[...slug]]",
      "dataRoute": "/_next/data/nVTOBJpUcqSKFF3psma5T/es/soporte.json"
    },
    "/fr/support": {
      "initialRevalidateSeconds": false,
      "srcRoute": "/[[...slug]]",
      "dataRoute": "/_next/data/nVTOBJpUcqSKFF3psma5T/fr/support.json"
    },
    "/nl/support": {
      "initialRevalidateSeconds": false,
      "srcRoute": "/[[...slug]]",
      "dataRoute": "/_next/data/nVTOBJpUcqSKFF3psma5T/nl/support.json"
    },
    "/de/djay": {
      "initialRevalidateSeconds": false,
      "srcRoute": "/[[...slug]]",
      "dataRoute": "/_next/data/nVTOBJpUcqSKFF3psma5T/de/djay.json"
    },
    "/en/djay": {
      "initialRevalidateSeconds": false,
      "srcRoute": "/[[...slug]]",
      "dataRoute": "/_next/data/nVTOBJpUcqSKFF3psma5T/en/djay.json"
    },
    "/es/djay": {
      "initialRevalidateSeconds": false,
      "srcRoute": "/[[...slug]]",
      "dataRoute": "/_next/data/nVTOBJpUcqSKFF3psma5T/es/djay.json"
    },
    "/fr/djay": {
      "initialRevalidateSeconds": false,
      "srcRoute": "/[[...slug]]",
      "dataRoute": "/_next/data/nVTOBJpUcqSKFF3psma5T/fr/djay.json"
    },
    "/nl/djay": {
      "initialRevalidateSeconds": false,
      "srcRoute": "/[[...slug]]",
      "dataRoute": "/_next/data/nVTOBJpUcqSKFF3psma5T/nl/djay.json"
    },
    "/de/beatport": {
      "initialRevalidateSeconds": false,
      "srcRoute": "/[[...slug]]",
      "dataRoute": "/_next/data/nVTOBJpUcqSKFF3psma5T/de/beatport.json"
    },
    "/en/beatport": {
      "initialRevalidateSeconds": false,
      "srcRoute": "/[[...slug]]",
      "dataRoute": "/_next/data/nVTOBJpUcqSKFF3psma5T/en/beatport.json"
    },
    "/es/beatport": {
      "initialRevalidateSeconds": false,
      "srcRoute": "/[[...slug]]",
      "dataRoute": "/_next/data/nVTOBJpUcqSKFF3psma5T/es/beatport.json"
    },
    "/fr/beatport": {
      "initialRevalidateSeconds": false,
      "srcRoute": "/[[...slug]]",
      "dataRoute": "/_next/data/nVTOBJpUcqSKFF3psma5T/fr/beatport.json"
    },
    "/nl/beatport": {
      "initialRevalidateSeconds": false,
      "srcRoute": "/[[...slug]]",
      "dataRoute": "/_next/data/nVTOBJpUcqSKFF3psma5T/nl/beatport.json"
    },
    "/de/hardware-setup": {
      "initialRevalidateSeconds": false,
      "srcRoute": "/[[...slug]]",
      "dataRoute": "/_next/data/nVTOBJpUcqSKFF3psma5T/de/hardware-setup.json"
    },
    "/en/hardware-setup": {
      "initialRevalidateSeconds": false,
      "srcRoute": "/[[...slug]]",
      "dataRoute": "/_next/data/nVTOBJpUcqSKFF3psma5T/en/hardware-setup.json"
    },
    "/es/hardware-setup": {
      "initialRevalidateSeconds": false,
      "srcRoute": "/[[...slug]]",
      "dataRoute": "/_next/data/nVTOBJpUcqSKFF3psma5T/es/hardware-setup.json"
    },
    "/fr/hardware-setup": {
      "initialRevalidateSeconds": false,
      "srcRoute": "/[[...slug]]",
      "dataRoute": "/_next/data/nVTOBJpUcqSKFF3psma5T/fr/hardware-setup.json"
    },
    "/nl/hardware-setup": {
      "initialRevalidateSeconds": false,
      "srcRoute": "/[[...slug]]",
      "dataRoute": "/_next/data/nVTOBJpUcqSKFF3psma5T/nl/hardware-setup.json"
    },
    "/de/driver-installieren ": {
      "initialRevalidateSeconds": false,
      "srcRoute": "/[[...slug]]",
      "dataRoute": "/_next/data/nVTOBJpUcqSKFF3psma5T/de/driver-installieren .json"
    },
    "/en/driver-install": {
      "initialRevalidateSeconds": false,
      "srcRoute": "/[[...slug]]",
      "dataRoute": "/_next/data/nVTOBJpUcqSKFF3psma5T/en/driver-install.json"
    },
    "/es/instalacion-del-controlador ": {
      "initialRevalidateSeconds": false,
      "srcRoute": "/[[...slug]]",
      "dataRoute": "/_next/data/nVTOBJpUcqSKFF3psma5T/es/instalacion-del-controlador .json"
    },
    "/fr/installation-du-pilote ": {
      "initialRevalidateSeconds": false,
      "srcRoute": "/[[...slug]]",
      "dataRoute": "/_next/data/nVTOBJpUcqSKFF3psma5T/fr/installation-du-pilote .json"
    },
    "/nl/driver-installeren": {
      "initialRevalidateSeconds": false,
      "srcRoute": "/[[...slug]]",
      "dataRoute": "/_next/data/nVTOBJpUcqSKFF3psma5T/nl/driver-installeren.json"
    },
    "/de/PLAY": {
      "initialRevalidateSeconds": false,
      "srcRoute": "/[[...slug]]",
      "dataRoute": "/_next/data/nVTOBJpUcqSKFF3psma5T/de/PLAY.json"
    },
    "/en/PLAY": {
      "initialRevalidateSeconds": false,
      "srcRoute": "/[[...slug]]",
      "dataRoute": "/_next/data/nVTOBJpUcqSKFF3psma5T/en/PLAY.json"
    },
    "/es/PLAY": {
      "initialRevalidateSeconds": false,
      "srcRoute": "/[[...slug]]",
      "dataRoute": "/_next/data/nVTOBJpUcqSKFF3psma5T/es/PLAY.json"
    },
    "/fr/PLAY": {
      "initialRevalidateSeconds": false,
      "srcRoute": "/[[...slug]]",
      "dataRoute": "/_next/data/nVTOBJpUcqSKFF3psma5T/fr/PLAY.json"
    },
    "/nl/PLAY": {
      "initialRevalidateSeconds": false,
      "srcRoute": "/[[...slug]]",
      "dataRoute": "/_next/data/nVTOBJpUcqSKFF3psma5T/nl/PLAY.json"
    },
    "/de": {
      "initialRevalidateSeconds": false,
      "srcRoute": "/[[...slug]]",
      "dataRoute": "/_next/data/nVTOBJpUcqSKFF3psma5T/de.json"
    },
    "/en": {
      "initialRevalidateSeconds": false,
      "srcRoute": "/[[...slug]]",
      "dataRoute": "/_next/data/nVTOBJpUcqSKFF3psma5T/en.json"
    },
    "/es": {
      "initialRevalidateSeconds": false,
      "srcRoute": "/[[...slug]]",
      "dataRoute": "/_next/data/nVTOBJpUcqSKFF3psma5T/es.json"
    },
    "/fr": {
      "initialRevalidateSeconds": false,
      "srcRoute": "/[[...slug]]",
      "dataRoute": "/_next/data/nVTOBJpUcqSKFF3psma5T/fr.json"
    },
    "/nl": {
      "initialRevalidateSeconds": false,
      "srcRoute": "/[[...slug]]",
      "dataRoute": "/_next/data/nVTOBJpUcqSKFF3psma5T/nl.json"
    },
    "/de/welcom-page": {
      "initialRevalidateSeconds": false,
      "srcRoute": "/[[...slug]]",
      "dataRoute": "/_next/data/nVTOBJpUcqSKFF3psma5T/de/welcom-page.json"
    },
    "/en/welcome-page": {
      "initialRevalidateSeconds": false,
      "srcRoute": "/[[...slug]]",
      "dataRoute": "/_next/data/nVTOBJpUcqSKFF3psma5T/en/welcome-page.json"
    },
    "/es/welcom-page": {
      "initialRevalidateSeconds": false,
      "srcRoute": "/[[...slug]]",
      "dataRoute": "/_next/data/nVTOBJpUcqSKFF3psma5T/es/welcom-page.json"
    },
    "/fr/welcom-page": {
      "initialRevalidateSeconds": false,
      "srcRoute": "/[[...slug]]",
      "dataRoute": "/_next/data/nVTOBJpUcqSKFF3psma5T/fr/welcom-page.json"
    },
    "/nl/welcom-page": {
      "initialRevalidateSeconds": false,
      "srcRoute": "/[[...slug]]",
      "dataRoute": "/_next/data/nVTOBJpUcqSKFF3psma5T/nl/welcom-page.json"
    },
    "/de/set-up-mobile-gerät": {
      "initialRevalidateSeconds": false,
      "srcRoute": "/[[...slug]]",
      "dataRoute": "/_next/data/nVTOBJpUcqSKFF3psma5T/de/set-up-mobile-gerät.json"
    },
    "/en/setup-mobile-device": {
      "initialRevalidateSeconds": false,
      "srcRoute": "/[[...slug]]",
      "dataRoute": "/_next/data/nVTOBJpUcqSKFF3psma5T/en/setup-mobile-device.json"
    },
    "/es/configuracion-del-dispositivo-movil": {
      "initialRevalidateSeconds": false,
      "srcRoute": "/[[...slug]]",
      "dataRoute": "/_next/data/nVTOBJpUcqSKFF3psma5T/es/configuracion-del-dispositivo-movil.json"
    },
    "/fr/configurer-un-appareil-mobile": {
      "initialRevalidateSeconds": false,
      "srcRoute": "/[[...slug]]",
      "dataRoute": "/_next/data/nVTOBJpUcqSKFF3psma5T/fr/configurer-un-appareil-mobile.json"
    },
    "/nl/mobiel-apparaat-instellen": {
      "initialRevalidateSeconds": false,
      "srcRoute": "/[[...slug]]",
      "dataRoute": "/_next/data/nVTOBJpUcqSKFF3psma5T/nl/mobiel-apparaat-instellen.json"
    },
    "/en/faq/beatport-dj-faq": {
      "initialRevalidateSeconds": false,
      "srcRoute": "/[[...slug]]",
      "dataRoute": "/_next/data/nVTOBJpUcqSKFF3psma5T/en/faq/beatport-dj-faq.json"
    },
    "/en/faq/djay-faq": {
      "initialRevalidateSeconds": false,
      "srcRoute": "/[[...slug]]",
      "dataRoute": "/_next/data/nVTOBJpUcqSKFF3psma5T/en/faq/djay-faq.json"
    },
    "/en/faq/account-information": {
      "initialRevalidateSeconds": false,
      "srcRoute": "/[[...slug]]",
      "dataRoute": "/_next/data/nVTOBJpUcqSKFF3psma5T/en/faq/account-information.json"
    },
    "/en/faq/dj-controller-faq": {
      "initialRevalidateSeconds": false,
      "srcRoute": "/[[...slug]]",
      "dataRoute": "/_next/data/nVTOBJpUcqSKFF3psma5T/en/faq/dj-controller-faq.json"
    },
    "/en/faq/installation-and-setup-faq": {
      "initialRevalidateSeconds": false,
      "srcRoute": "/[[...slug]]",
      "dataRoute": "/_next/data/nVTOBJpUcqSKFF3psma5T/en/faq/installation-and-setup-faq.json"
    },
    "/en/faq/djay-faq/which-macos-version-is-required-to-install-djay": {
      "initialRevalidateSeconds": false,
      "srcRoute": "/[[...slug]]",
      "dataRoute": "/_next/data/nVTOBJpUcqSKFF3psma5T/en/faq/djay-faq/which-macos-version-is-required-to-install-djay.json"
    },
    "/en/faq/djay-faq/which-windows-version-is-required-to-install-djay": {
      "initialRevalidateSeconds": false,
      "srcRoute": "/[[...slug]]",
      "dataRoute": "/_next/data/nVTOBJpUcqSKFF3psma5T/en/faq/djay-faq/which-windows-version-is-required-to-install-djay.json"
    },
    "/en/faq/djay-faq/when-loading-a-track-an-error-message-appears-what-is-wrong": {
      "initialRevalidateSeconds": false,
      "srcRoute": "/[[...slug]]",
      "dataRoute": "/_next/data/nVTOBJpUcqSKFF3psma5T/en/faq/djay-faq/when-loading-a-track-an-error-message-appears-what-is-wrong.json"
    },
    "/en/faq/beatport-dj-faq/what-is-beatport": {
      "initialRevalidateSeconds": false,
      "srcRoute": "/[[...slug]]",
      "dataRoute": "/_next/data/nVTOBJpUcqSKFF3psma5T/en/faq/beatport-dj-faq/what-is-beatport.json"
    },
    "/en/faq/beatport-dj-faq/what-is-beatsource": {
      "initialRevalidateSeconds": false,
      "srcRoute": "/[[...slug]]",
      "dataRoute": "/_next/data/nVTOBJpUcqSKFF3psma5T/en/faq/beatport-dj-faq/what-is-beatsource.json"
    },
    "/en/faq/beatport-dj-faq/can-i-make-a-playlist-from-mp3-tracks-that-are-on-my-computer": {
      "initialRevalidateSeconds": false,
      "srcRoute": "/[[...slug]]",
      "dataRoute": "/_next/data/nVTOBJpUcqSKFF3psma5T/en/faq/beatport-dj-faq/can-i-make-a-playlist-from-mp3-tracks-that-are-on-my-computer.json"
    },
    "/en/faq/beatport-dj-faq/can-i-use-speakers-and-headphones-at-the-same-time-when-djing-in-the": {
      "initialRevalidateSeconds": false,
      "srcRoute": "/[[...slug]]",
      "dataRoute": "/_next/data/nVTOBJpUcqSKFF3psma5T/en/faq/beatport-dj-faq/can-i-use-speakers-and-headphones-at-the-same-time-when-djing-in-the.json"
    },
    "/en/faq/beatport-dj-faq/can-i-use-key-match-in-beatport-dj-app": {
      "initialRevalidateSeconds": false,
      "srcRoute": "/[[...slug]]",
      "dataRoute": "/_next/data/nVTOBJpUcqSKFF3psma5T/en/faq/beatport-dj-faq/can-i-use-key-match-in-beatport-dj-app.json"
    },
    "/en/faq/beatport-dj-faq/when-i-play-the-sound-is-sometimes-a-bit-distorted-or-lacking": {
      "initialRevalidateSeconds": false,
      "srcRoute": "/[[...slug]]",
      "dataRoute": "/_next/data/nVTOBJpUcqSKFF3psma5T/en/faq/beatport-dj-faq/when-i-play-the-sound-is-sometimes-a-bit-distorted-or-lacking.json"
    },
    "/en/faq/djay-faq/can-i-use-my-own-samples": {
      "initialRevalidateSeconds": false,
      "srcRoute": "/[[...slug]]",
      "dataRoute": "/_next/data/nVTOBJpUcqSKFF3psma5T/en/faq/djay-faq/can-i-use-my-own-samples.json"
    },
    "/en/faq/beatport-dj-faq/can-i-load-and-use-mp3-tracks-that-are-locally-on-my-computer": {
      "initialRevalidateSeconds": false,
      "srcRoute": "/[[...slug]]",
      "dataRoute": "/_next/data/nVTOBJpUcqSKFF3psma5T/en/faq/beatport-dj-faq/can-i-load-and-use-mp3-tracks-that-are-locally-on-my-computer.json"
    },
    "/en/faq/beatport-dj-faq/can-i-download-the-playlist-in-beatport-dj-app": {
      "initialRevalidateSeconds": false,
      "srcRoute": "/[[...slug]]",
      "dataRoute": "/_next/data/nVTOBJpUcqSKFF3psma5T/en/faq/beatport-dj-faq/can-i-download-the-playlist-in-beatport-dj-app.json"
    },
    "/en/faq/dj-controller-faq/can-i-connect-a-stereo-microphone": {
      "initialRevalidateSeconds": false,
      "srcRoute": "/[[...slug]]",
      "dataRoute": "/_next/data/nVTOBJpUcqSKFF3psma5T/en/faq/dj-controller-faq/can-i-connect-a-stereo-microphone.json"
    },
    "/en/faq/dj-controller-faq/how-do-i-scratch": {
      "initialRevalidateSeconds": false,
      "srcRoute": "/[[...slug]]",
      "dataRoute": "/_next/data/nVTOBJpUcqSKFF3psma5T/en/faq/dj-controller-faq/how-do-i-scratch.json"
    },
    "/en/faq/beatport-dj-faq/how-many-effects-can-i-use-in-beatport-dj-app": {
      "initialRevalidateSeconds": false,
      "srcRoute": "/[[...slug]]",
      "dataRoute": "/_next/data/nVTOBJpUcqSKFF3psma5T/en/faq/beatport-dj-faq/how-many-effects-can-i-use-in-beatport-dj-app.json"
    },
    "/en/faq/dj-controller-faq/how-is-the-dj-controller-powered": {
      "initialRevalidateSeconds": false,
      "srcRoute": "/[[...slug]]",
      "dataRoute": "/_next/data/nVTOBJpUcqSKFF3psma5T/en/faq/dj-controller-faq/how-is-the-dj-controller-powered.json"
    },
    "/en/faq/djay-faq/how-many-effects-can-i-use-in-djay": {
      "initialRevalidateSeconds": false,
      "srcRoute": "/[[...slug]]",
      "dataRoute": "/_next/data/nVTOBJpUcqSKFF3psma5T/en/faq/djay-faq/how-many-effects-can-i-use-in-djay.json"
    },
    "/en/faq/dj-controller-faq/can-i-stop-automatic-start-of-a-track-after-loading": {
      "initialRevalidateSeconds": false,
      "srcRoute": "/[[...slug]]",
      "dataRoute": "/_next/data/nVTOBJpUcqSKFF3psma5T/en/faq/dj-controller-faq/can-i-stop-automatic-start-of-a-track-after-loading.json"
    },
    "/en/faq/djay-faq/can-i-set-the-sensitivity-of-the-tempo-slider": {
      "initialRevalidateSeconds": false,
      "srcRoute": "/[[...slug]]",
      "dataRoute": "/_next/data/nVTOBJpUcqSKFF3psma5T/en/faq/djay-faq/can-i-set-the-sensitivity-of-the-tempo-slider.json"
    },
    "/en/faq/djay-faq/can-i-assign-certain-buttons-and-faders-differently-as-on-default-mode": {
      "initialRevalidateSeconds": false,
      "srcRoute": "/[[...slug]]",
      "dataRoute": "/_next/data/nVTOBJpUcqSKFF3psma5T/en/faq/djay-faq/can-i-assign-certain-buttons-and-faders-differently-as-on-default-mode.json"
    },
    "/en/faq/djay-faq/when-i-move-the-crossfader-while-using-djay-pro-headphone-cue-is": {
      "initialRevalidateSeconds": false,
      "srcRoute": "/[[...slug]]",
      "dataRoute": "/_next/data/nVTOBJpUcqSKFF3psma5T/en/faq/djay-faq/when-i-move-the-crossfader-while-using-djay-pro-headphone-cue-is.json"
    },
    "/en/faq/dj-controller-faq/the-volume-of-the-microphone-is-too-soft-or-distorted": {
      "initialRevalidateSeconds": false,
      "srcRoute": "/[[...slug]]",
      "dataRoute": "/_next/data/nVTOBJpUcqSKFF3psma5T/en/faq/dj-controller-faq/the-volume-of-the-microphone-is-too-soft-or-distorted.json"
    },
    "/en/faq/dj-controller-faq/when-the-dj-controller-is-connected-through-usb-it-is-not-recognized": {
      "initialRevalidateSeconds": false,
      "srcRoute": "/[[...slug]]",
      "dataRoute": "/_next/data/nVTOBJpUcqSKFF3psma5T/en/faq/dj-controller-faq/when-the-dj-controller-is-connected-through-usb-it-is-not-recognized.json"
    },
    "/en/faq/dj-controller-faq/how-do-i-erase-a-hot-cue": {
      "initialRevalidateSeconds": false,
      "srcRoute": "/[[...slug]]",
      "dataRoute": "/_next/data/nVTOBJpUcqSKFF3psma5T/en/faq/dj-controller-faq/how-do-i-erase-a-hot-cue.json"
    },
    "/en/faq/dj-controller-faq/how-do-i-stop-the-dj-controllers-demo-mode": {
      "initialRevalidateSeconds": false,
      "srcRoute": "/[[...slug]]",
      "dataRoute": "/_next/data/nVTOBJpUcqSKFF3psma5T/en/faq/dj-controller-faq/how-do-i-stop-the-dj-controllers-demo-mode.json"
    },
    "/en/faq/dj-controller-faq/how-do-i-start-the-demo-mode-of-the-dj-controller": {
      "initialRevalidateSeconds": false,
      "srcRoute": "/[[...slug]]",
      "dataRoute": "/_next/data/nVTOBJpUcqSKFF3psma5T/en/faq/dj-controller-faq/how-do-i-start-the-demo-mode-of-the-dj-controller.json"
    },
    "/en/faq/dj-controller-faq/how-do-i-connect-the-ios-device-to-the-next-beat-dj-controller": {
      "initialRevalidateSeconds": false,
      "srcRoute": "/[[...slug]]",
      "dataRoute": "/_next/data/nVTOBJpUcqSKFF3psma5T/en/faq/dj-controller-faq/how-do-i-connect-the-ios-device-to-the-next-beat-dj-controller.json"
    },
    "/en/faq/dj-controller-faq/how-can-i-have-two-tracks-automatically-played-in-tempo": {
      "initialRevalidateSeconds": false,
      "srcRoute": "/[[...slug]]",
      "dataRoute": "/_next/data/nVTOBJpUcqSKFF3psma5T/en/faq/dj-controller-faq/how-can-i-have-two-tracks-automatically-played-in-tempo.json"
    },
    "/en/faq/dj-controller-faq/does-the-microphone-input-also-support-phantom-power": {
      "initialRevalidateSeconds": false,
      "srcRoute": "/[[...slug]]",
      "dataRoute": "/_next/data/nVTOBJpUcqSKFF3psma5T/en/faq/dj-controller-faq/does-the-microphone-input-also-support-phantom-power.json"
    },
    "/en/faq/dj-controller-faq/there-is-no-sound-when-i-try-to-play-a-sample": {
      "initialRevalidateSeconds": false,
      "srcRoute": "/[[...slug]]",
      "dataRoute": "/_next/data/nVTOBJpUcqSKFF3psma5T/en/faq/dj-controller-faq/there-is-no-sound-when-i-try-to-play-a-sample.json"
    },
    "/en/faq/dj-controller-faq/can-i-also-play-sound-with-the-bluetooth-option": {
      "initialRevalidateSeconds": false,
      "srcRoute": "/[[...slug]]",
      "dataRoute": "/_next/data/nVTOBJpUcqSKFF3psma5T/en/faq/dj-controller-faq/can-i-also-play-sound-with-the-bluetooth-option.json"
    },
    "/en/faq/installation-and-setup-faq/how-can-i-update-the-firmware": {
      "initialRevalidateSeconds": false,
      "srcRoute": "/[[...slug]]",
      "dataRoute": "/_next/data/nVTOBJpUcqSKFF3psma5T/en/faq/installation-and-setup-faq/how-can-i-update-the-firmware.json"
    },
    "/en/faq/installation-and-setup-faq/how-do-i-connect-my-mobile-device-to-the-dj-controller": {
      "initialRevalidateSeconds": false,
      "srcRoute": "/[[...slug]]",
      "dataRoute": "/_next/data/nVTOBJpUcqSKFF3psma5T/en/faq/installation-and-setup-faq/how-do-i-connect-my-mobile-device-to-the-dj-controller.json"
    },
    "/en/faq/installation-and-setup-faq/do-i-need-a-driver-for-windows-10-and-above": {
      "initialRevalidateSeconds": false,
      "srcRoute": "/[[...slug]]",
      "dataRoute": "/_next/data/nVTOBJpUcqSKFF3psma5T/en/faq/installation-and-setup-faq/do-i-need-a-driver-for-windows-10-and-above.json"
    },
    "/en/faq/dj-controller-faq/my-mobile-device-does-not-have-a-jack-headphone-connection-how-do-i-connect": {
      "initialRevalidateSeconds": false,
      "srcRoute": "/[[...slug]]",
      "dataRoute": "/_next/data/nVTOBJpUcqSKFF3psma5T/en/faq/dj-controller-faq/my-mobile-device-does-not-have-a-jack-headphone-connection-how-do-i-connect.json"
    },
    "/en/faq/installation-and-setup-faq/i-dont-have-a-voucher-code-can-i-sign-up-to-the-website": {
      "initialRevalidateSeconds": false,
      "srcRoute": "/[[...slug]]",
      "dataRoute": "/_next/data/nVTOBJpUcqSKFF3psma5T/en/faq/installation-and-setup-faq/i-dont-have-a-voucher-code-can-i-sign-up-to-the-website.json"
    },
    "/en/faq/installation-and-setup-faq/do-i-need-a-driver-for-macos": {
      "initialRevalidateSeconds": false,
      "srcRoute": "/[[...slug]]",
      "dataRoute": "/_next/data/nVTOBJpUcqSKFF3psma5T/en/faq/installation-and-setup-faq/do-i-need-a-driver-for-macos.json"
    },
    "/en/faq/dj-controller-faq/do-i-need-an-extra-sound-card-to-dj": {
      "initialRevalidateSeconds": false,
      "srcRoute": "/[[...slug]]",
      "dataRoute": "/_next/data/nVTOBJpUcqSKFF3psma5T/en/faq/dj-controller-faq/do-i-need-an-extra-sound-card-to-dj.json"
    },
    "/en/faq/installation-and-setup-faq/do-i-need-speakers-and-headphones-to-dj": {
      "initialRevalidateSeconds": false,
      "srcRoute": "/[[...slug]]",
      "dataRoute": "/_next/data/nVTOBJpUcqSKFF3psma5T/en/faq/installation-and-setup-faq/do-i-need-speakers-and-headphones-to-dj.json"
    },
    "/en/faq/installation-and-setup-faq/how-do-i-connect-the-dj-controller-to-a-usb-c-port": {
      "initialRevalidateSeconds": false,
      "srcRoute": "/[[...slug]]",
      "dataRoute": "/_next/data/nVTOBJpUcqSKFF3psma5T/en/faq/installation-and-setup-faq/how-do-i-connect-the-dj-controller-to-a-usb-c-port.json"
    },
    "/en/faq/installation-and-setup-faq/why-cant-i-hear-any-sound-when-playing": {
      "initialRevalidateSeconds": false,
      "srcRoute": "/[[...slug]]",
      "dataRoute": "/_next/data/nVTOBJpUcqSKFF3psma5T/en/faq/installation-and-setup-faq/why-cant-i-hear-any-sound-when-playing.json"
    },
    "/en/faq/installation-and-setup-faq/the-sound-is-distorted-whats-wrong": {
      "initialRevalidateSeconds": false,
      "srcRoute": "/[[...slug]]",
      "dataRoute": "/_next/data/nVTOBJpUcqSKFF3psma5T/en/faq/installation-and-setup-faq/the-sound-is-distorted-whats-wrong.json"
    },
    "/en/faq/installation-and-setup-faq/how-can-i-listen-to-the-sound-through-the-headphones-if-i-want-to-dj-with-a": {
      "initialRevalidateSeconds": false,
      "srcRoute": "/[[...slug]]",
      "dataRoute": "/_next/data/nVTOBJpUcqSKFF3psma5T/en/faq/installation-and-setup-faq/how-can-i-listen-to-the-sound-through-the-headphones-if-i-want-to-dj-with-a.json"
    },
    "/en/faq/installation-and-setup-faq/is-an-internet-connection-required": {
      "initialRevalidateSeconds": false,
      "srcRoute": "/[[...slug]]",
      "dataRoute": "/_next/data/nVTOBJpUcqSKFF3psma5T/en/faq/installation-and-setup-faq/is-an-internet-connection-required.json"
    },
    "/en/courses/the-setup": {
      "initialRevalidateSeconds": false,
      "srcRoute": "/[[...slug]]",
      "dataRoute": "/_next/data/nVTOBJpUcqSKFF3psma5T/en/courses/the-setup.json"
    },
    "/en/courses/the-expert": {
      "initialRevalidateSeconds": false,
      "srcRoute": "/[[...slug]]",
      "dataRoute": "/_next/data/nVTOBJpUcqSKFF3psma5T/en/courses/the-expert.json"
    },
    "/en/courses/the-intermediate": {
      "initialRevalidateSeconds": false,
      "srcRoute": "/[[...slug]]",
      "dataRoute": "/_next/data/nVTOBJpUcqSKFF3psma5T/en/courses/the-intermediate.json"
    },
    "/en/courses/the-basics": {
      "initialRevalidateSeconds": false,
      "srcRoute": "/[[...slug]]",
      "dataRoute": "/_next/data/nVTOBJpUcqSKFF3psma5T/en/courses/the-basics.json"
    },
    "/en/courses/getting-started": {
      "initialRevalidateSeconds": false,
      "srcRoute": "/[[...slug]]",
      "dataRoute": "/_next/data/nVTOBJpUcqSKFF3psma5T/en/courses/getting-started.json"
    },
    "/en/courses/the-essentials-djay": {
      "initialRevalidateSeconds": false,
      "srcRoute": "/[[...slug]]",
      "dataRoute": "/_next/data/nVTOBJpUcqSKFF3psma5T/en/courses/the-essentials-djay.json"
    },
    "/en/courses/the-intermediate-djay": {
      "initialRevalidateSeconds": false,
      "srcRoute": "/[[...slug]]",
      "dataRoute": "/_next/data/nVTOBJpUcqSKFF3psma5T/en/courses/the-intermediate-djay.json"
    },
    "/en/courses/the-setup-1": {
      "initialRevalidateSeconds": false,
      "srcRoute": "/[[...slug]]",
      "dataRoute": "/_next/data/nVTOBJpUcqSKFF3psma5T/en/courses/the-setup-1.json"
    },
    "/en/lesson/mc-ing-with-a-microphone": {
      "initialRevalidateSeconds": false,
      "srcRoute": "/[[...slug]]",
      "dataRoute": "/_next/data/nVTOBJpUcqSKFF3psma5T/en/lesson/mc-ing-with-a-microphone.json"
    },
    "/en/lesson/the-next-beat-dj-controller": {
      "initialRevalidateSeconds": false,
      "srcRoute": "/[[...slug]]",
      "dataRoute": "/_next/data/nVTOBJpUcqSKFF3psma5T/en/lesson/the-next-beat-dj-controller.json"
    },
    "/en/lesson/eq-and-filtering": {
      "initialRevalidateSeconds": false,
      "srcRoute": "/[[...slug]]",
      "dataRoute": "/_next/data/nVTOBJpUcqSKFF3psma5T/en/lesson/eq-and-filtering.json"
    },
    "/en/lesson/set-up-beatport-on-pc-or-mac-1": {
      "initialRevalidateSeconds": false,
      "srcRoute": "/[[...slug]]",
      "dataRoute": "/_next/data/nVTOBJpUcqSKFF3psma5T/en/lesson/set-up-beatport-on-pc-or-mac-1.json"
    },
    "/en/lesson/connecting-speakers-and-headphones-1": {
      "initialRevalidateSeconds": false,
      "srcRoute": "/[[...slug]]",
      "dataRoute": "/_next/data/nVTOBJpUcqSKFF3psma5T/en/lesson/connecting-speakers-and-headphones-1.json"
    },
    "/en/lesson/set-up-on-mobile-devices-1": {
      "initialRevalidateSeconds": false,
      "srcRoute": "/[[...slug]]",
      "dataRoute": "/_next/data/nVTOBJpUcqSKFF3psma5T/en/lesson/set-up-on-mobile-devices-1.json"
    },
    "/en/lesson/key-lock-and-key-matching": {
      "initialRevalidateSeconds": false,
      "srcRoute": "/[[...slug]]",
      "dataRoute": "/_next/data/nVTOBJpUcqSKFF3psma5T/en/lesson/key-lock-and-key-matching.json"
    },
    "/en/lesson/mash-up": {
      "initialRevalidateSeconds": false,
      "srcRoute": "/[[...slug]]",
      "dataRoute": "/_next/data/nVTOBJpUcqSKFF3psma5T/en/lesson/mash-up.json"
    },
    "/en/lesson/introduction-to-beatport-dj-app": {
      "initialRevalidateSeconds": false,
      "srcRoute": "/[[...slug]]",
      "dataRoute": "/_next/data/nVTOBJpUcqSKFF3psma5T/en/lesson/introduction-to-beatport-dj-app.json"
    },
    "/en/lesson/playing-samples": {
      "initialRevalidateSeconds": false,
      "srcRoute": "/[[...slug]]",
      "dataRoute": "/_next/data/nVTOBJpUcqSKFF3psma5T/en/lesson/playing-samples.json"
    },
    "/en/lesson/dj-transitions": {
      "initialRevalidateSeconds": false,
      "srcRoute": "/[[...slug]]",
      "dataRoute": "/_next/data/nVTOBJpUcqSKFF3psma5T/en/lesson/dj-transitions.json"
    },
    "/en/lesson/adding-effects": {
      "initialRevalidateSeconds": false,
      "srcRoute": "/[[...slug]]",
      "dataRoute": "/_next/data/nVTOBJpUcqSKFF3psma5T/en/lesson/adding-effects.json"
    },
    "/en/lesson/using-hot-cues": {
      "initialRevalidateSeconds": false,
      "srcRoute": "/[[...slug]]",
      "dataRoute": "/_next/data/nVTOBJpUcqSKFF3psma5T/en/lesson/using-hot-cues.json"
    },
    "/en/lesson/scratching": {
      "initialRevalidateSeconds": false,
      "srcRoute": "/[[...slug]]",
      "dataRoute": "/_next/data/nVTOBJpUcqSKFF3psma5T/en/lesson/scratching.json"
    },
    "/en/lesson/set-up-on-mobile-devices": {
      "initialRevalidateSeconds": false,
      "srcRoute": "/[[...slug]]",
      "dataRoute": "/_next/data/nVTOBJpUcqSKFF3psma5T/en/lesson/set-up-on-mobile-devices.json"
    },
    "/en/lesson/looping-with-auto-loop-and-manual-loop": {
      "initialRevalidateSeconds": false,
      "srcRoute": "/[[...slug]]",
      "dataRoute": "/_next/data/nVTOBJpUcqSKFF3psma5T/en/lesson/looping-with-auto-loop-and-manual-loop.json"
    },
    "/en/lesson/set-up-on-pc-or-mac": {
      "initialRevalidateSeconds": false,
      "srcRoute": "/[[...slug]]",
      "dataRoute": "/_next/data/nVTOBJpUcqSKFF3psma5T/en/lesson/set-up-on-pc-or-mac.json"
    },
    "/en/lesson/basics-of-beat-matching": {
      "initialRevalidateSeconds": false,
      "srcRoute": "/[[...slug]]",
      "dataRoute": "/_next/data/nVTOBJpUcqSKFF3psma5T/en/lesson/basics-of-beat-matching.json"
    },
    "/en/lesson/1-connecting-speakers-and-headphones": {
      "initialRevalidateSeconds": false,
      "srcRoute": "/[[...slug]]",
      "dataRoute": "/_next/data/nVTOBJpUcqSKFF3psma5T/en/lesson/1-connecting-speakers-and-headphones.json"
    },
    "/en/lesson/equalizing-and-filtering": {
      "initialRevalidateSeconds": false,
      "srcRoute": "/[[...slug]]",
      "dataRoute": "/_next/data/nVTOBJpUcqSKFF3psma5T/en/lesson/equalizing-and-filtering.json"
    },
    "/en/lesson/cueing-a-track": {
      "initialRevalidateSeconds": false,
      "srcRoute": "/[[...slug]]",
      "dataRoute": "/_next/data/nVTOBJpUcqSKFF3psma5T/en/lesson/cueing-a-track.json"
    },
    "/en/lesson/dj-transitions-1": {
      "initialRevalidateSeconds": false,
      "srcRoute": "/[[...slug]]",
      "dataRoute": "/_next/data/nVTOBJpUcqSKFF3psma5T/en/lesson/dj-transitions-1.json"
    },
    "/en/lesson/playing-samples-1": {
      "initialRevalidateSeconds": false,
      "srcRoute": "/[[...slug]]",
      "dataRoute": "/_next/data/nVTOBJpUcqSKFF3psma5T/en/lesson/playing-samples-1.json"
    },
    "/en/lesson/adding-effects-1": {
      "initialRevalidateSeconds": false,
      "srcRoute": "/[[...slug]]",
      "dataRoute": "/_next/data/nVTOBJpUcqSKFF3psma5T/en/lesson/adding-effects-1.json"
    },
    "/en/lesson/beat-matching-1": {
      "initialRevalidateSeconds": false,
      "srcRoute": "/[[...slug]]",
      "dataRoute": "/_next/data/nVTOBJpUcqSKFF3psma5T/en/lesson/beat-matching-1.json"
    },
    "/en/lesson/looping-1": {
      "initialRevalidateSeconds": false,
      "srcRoute": "/[[...slug]]",
      "dataRoute": "/_next/data/nVTOBJpUcqSKFF3psma5T/en/lesson/looping-1.json"
    },
    "/en/lesson/hot-cues-1": {
      "initialRevalidateSeconds": false,
      "srcRoute": "/[[...slug]]",
      "dataRoute": "/_next/data/nVTOBJpUcqSKFF3psma5T/en/lesson/hot-cues-1.json"
    },
    "/en/lesson/playing-tracks-1": {
      "initialRevalidateSeconds": false,
      "srcRoute": "/[[...slug]]",
      "dataRoute": "/_next/data/nVTOBJpUcqSKFF3psma5T/en/lesson/playing-tracks-1.json"
    },
    "/en/lesson/cueing-a-track-1": {
      "initialRevalidateSeconds": false,
      "srcRoute": "/[[...slug]]",
      "dataRoute": "/_next/data/nVTOBJpUcqSKFF3psma5T/en/lesson/cueing-a-track-1.json"
    },
    "/en/lesson/eq-and-filtering-1": {
      "initialRevalidateSeconds": false,
      "srcRoute": "/[[...slug]]",
      "dataRoute": "/_next/data/nVTOBJpUcqSKFF3psma5T/en/lesson/eq-and-filtering-1.json"
    },
    "/en/lesson/playing-tracks": {
      "initialRevalidateSeconds": false,
      "srcRoute": "/[[...slug]]",
      "dataRoute": "/_next/data/nVTOBJpUcqSKFF3psma5T/en/lesson/playing-tracks.json"
    },
    "/en/lesson/scratching-1": {
      "initialRevalidateSeconds": false,
      "srcRoute": "/[[...slug]]",
      "dataRoute": "/_next/data/nVTOBJpUcqSKFF3psma5T/en/lesson/scratching-1.json"
    }
  },
  "dynamicRoutes": {
    "/[[...slug]]": {
      "routeRegex": "^(?:/(.+?))?(?:/)?$",
      "dataRoute": "/_next/data/nVTOBJpUcqSKFF3psma5T/[[...slug]].json",
      "fallback": null,
      "dataRouteRegex": "^/_next/data/nVTOBJpUcqSKFF3psma5T(?:/(.+?))?\\.json$"
    }
  },
  "notFoundRoutes": [],
  "preview": {
    "previewModeId": "b698b6d80298b366754b6562237873f3",
    "previewModeSigningKey": "91f94cdb323b7e7e1f16f8e5ccb7658f7dda898b8ecf8e5475907c310fb5942f",
    "previewModeEncryptionKey": "df3f8a5dee60f32b01d548a2e24f6e56514d2d0f1c025be081164847be6c3b8a"
  }
}
@hrishikesh-k hrishikesh-k added the type: bug code to address defects in shipped code label Jan 12, 2022
@overlordofmu
Copy link

overlordofmu commented Jan 14, 2022

I suspect the behavior here is that the middleware is sending both a stale-while-revalidate and max-age directives in the cache control header. As our CDN doesn't currently support any use of stale-while-revalidate the max-age only is used and is the source of this issue.

In other words, only the max-age directive is being used as that is the defined fallback behavior when stale-while-revalidate is not supported. This means that the CDN will cache the response for whatever the time says in the max-age directive. I've seen max-age values of 31536000 used and in that case the CDN would the cached response for a full year.

Again, this is only my best guess but I expect a developer will be able to confirm or disprove this hypothesis.

@ascorbic
Copy link
Contributor

ascorbic commented Jan 27, 2022

This isn't quite correct. We strip cache-control headers, so they shouldn't make any difference. The problem is that currently middleware runs at the origin, so if the page uses an ODB (i.e. it uses fallback=false or fallback=blocking, or it uses ISR) then the response with middleware is cached. Subsequent requests get the original version. The only way that you will have the middleware run each time is if the page uses SSR. This is unavoidable until we run middleware at the edge. I need to explain this better, so will open a PR with an update to the docs.

@ascorbic
Copy link
Contributor

We may need to make it serve them from regular handlers rather than ODBs. We already prevent static pages from being moved to the CDN if they match middleware (and warn the user). I think we may need to also prevent them from using ODBs.

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.

3 participants