I don’t have this in my repo. I changed the runtime to NextJs. This the the output of the next js plugin which is triggered right after the build
11:28:39 PM: 3. @netlify/plugin-nextjs (onBuild event) 11:28:39 PM: ──────────────────────────────────────────────────────────────── 11:28:39 PM: 11:28:39 PM: Patching /opt/build/repo/node_modules/next/dist/server/base-server.js 11:28:39 PM: Done 11:28:39 PM: Patching /opt/build/repo/node_modules/next/dist/server/next-server.js 11:28:39 PM: Done 11:28:39 PM: Moving static page files to serve from CDN... 11:28:40 PM: Moved 13 files 11:28:40 PM: You are not using Netlify Edge Functions for image format detection. Set env var "NEXT_FORCE_EDGE_IMAGES=true" to enable. 11:28:40 PM: Netlify configuration property "redirects" value changed to [ 11:28:40 PM: { from: '/_next/static/*', to: '/static/:splat', status: 200 }, 11:28:40 PM: { 11:28:40 PM: from: '/_next/image*', 11:28:40 PM: query: { url: ':url', w: ':width', q: ':quality' }, 11:28:40 PM: to: '/_ipx/w_:width,q_:quality/:url', 11:28:40 PM: status: 301 11:28:40 PM: }, 11:28:40 PM: { from: '/_ipx/*', to: '/.netlify/builders/_ipx', status: 200 }, 11:28:40 PM: { from: '/cache/*', to: '/404.html', status: 404, force: true }, 11:28:40 PM: { from: '/server/*', to: '/404.html', status: 404, force: true }, 11:28:40 PM: { from: '/serverless/*', to: '/404.html', status: 404, force: true }, 11:28:40 PM: { from: '/trace', to: '/404.html', status: 404, force: true }, 11:28:40 PM: { from: '/traces', to: '/404.html', status: 404, force: true }, 11:28:40 PM: { 11:28:40 PM: from: '/routes-manifest.json', 11:28:40 PM: to: '/404.html', 11:28:40 PM: status: 404, 11:28:40 PM: force: true 11:28:40 PM: }, 11:28:40 PM: { 11:28:40 PM: from: '/build-manifest.json', 11:28:40 PM: to: '/404.html', 11:28:40 PM: status: 404, 11:28:40 PM: force: true 11:28:40 PM: }, 11:28:40 PM: { 11:28:40 PM: from: '/prerender-manifest.json', 11:28:40 PM: to: '/404.html', 11:28:40 PM: status: 404, 11:28:40 PM: force: true 11:28:40 PM: }, 11:28:40 PM: { 11:28:40 PM: from: '/react-loadable-manifest.json', 11:28:40 PM: to: '/404.html', 11:28:40 PM: status: 404, 11:28:40 PM: force: true 11:28:40 PM: }, 11:28:40 PM: { from: '/BUILD_ID', to: '/404.html', status: 404, force: true }, 11:28:40 PM: { 11:28:40 PM: from: '/api/*', 11:28:40 PM: to: '/.netlify/functions/___netlify-handler', 11:28:40 PM: status: 200 11:28:40 PM: }, 11:28:40 PM: { 11:28:40 PM: from: '/android-chrome-192x192.png', 11:28:40 PM: to: '/android-chrome-192x192.png', 11:28:40 PM: conditions: { Cookie: [Array] }, 11:28:40 PM: status: 200 11:28:40 PM: }, 11:28:40 PM: { 11:28:40 PM: from: '/apple-touch-icon.png', 11:28:40 PM: to: '/apple-touch-icon.png', 11:28:40 PM: conditions: { Cookie: [Array] }, 11:28:40 PM: status: 200 11:28:40 PM: }, 11:28:40 PM: { 11:28:40 PM: from: '/favicon-32x32.png', 11:28:40 PM: to: '/favicon-32x32.png', 11:28:40 PM: conditions: { Cookie: [Array] }, 11:28:40 PM: status: 200 11:28:40 PM: }, 11:28:40 PM: { 11:28:40 PM: from: '/favicon.ico', 11:28:40 PM: to: '/favicon.ico', 11:28:40 PM: conditions: { Cookie: [Array] }, 11:28:40 PM: status: 200 11:28:40 PM: }, 11:28:40 PM: { 11:28:40 PM: from: '/manifest.json', 11:28:40 PM: to: '/manifest.json', 11:28:40 PM: conditions: { Cookie: [Array] }, 11:28:40 PM: status: 200 11:28:40 PM: }, 11:28:40 PM: { 11:28:40 PM: from: '/netlify.toml', 11:28:40 PM: to: '/netlify.toml', 11:28:40 PM: conditions: { Cookie: [Array] }, 11:28:40 PM: status: 200 11:28:40 PM: }, 11:28:40 PM: { 11:28:40 PM: from: '/robots.txt', 11:28:40 PM: to: '/robots.txt', 11:28:40 PM: conditions: { Cookie: [Array] }, 11:28:40 PM: status: 200 11:28:40 PM: }, 11:28:40 PM: { 11:28:40 PM: from: '/sitemap.xml', 11:28:40 PM: to: '/sitemap.xml', 11:28:40 PM: conditions: { Cookie: [Array] }, 11:28:40 PM: status: 200 11:28:40 PM: }, 11:28:40 PM: { 11:28:40 PM: from: '/social.jpeg', 11:28:40 PM: to: '/social.jpeg', 11:28:40 PM: conditions: { Cookie: [Array] }, 11:28:40 PM: status: 200 11:28:40 PM: }, 11:28:40 PM: { 11:28:40 PM: from: '/images/earn/coins-stacked.svg', 11:28:40 PM: to: '/images/earn/coins-stacked.svg', 11:28:40 PM: conditions: { Cookie: [Array] }, 11:28:40 PM: status: 200 11:28:40 PM: }, 11:28:40 PM: { 11:28:40 PM: from: '/images/earn/invest-globally.svg', 11:28:40 PM: to: '/images/earn/invest-globally.svg', 11:28:40 PM: conditions: { Cookie: [Array] }, 11:28:40 PM: status: 200 11:28:40 PM: }, 11:28:40 PM: { 11:28:40 PM: from: '/images/earn/lending-icon.svg', 11:28:40 PM: to: '/images/earn/lending-icon.svg', 11:28:40 PM: conditions: { Cookie: [Array] }, 11:28:40 PM: status: 200 11:28:40 PM: }, 11:28:40 PM: { 11:28:40 PM: from: '/images/earn/lock-closed.svg', 11:28:40 PM: to: '/images/earn/lock-closed.svg', 11:28:40 PM: conditions: { Cookie: [Array] }, 11:28:40 PM: status: 200 11:28:40 PM: }, 11:28:40 PM: { 11:28:40 PM: from: '/images/earn/lock-open.svg', 11:28:40 PM: to: '/images/earn/lock-open.svg', 11:28:40 PM: conditions: { Cookie: [Array] }, 11:28:40 PM: status: 200 11:28:40 PM: }, 11:28:40 PM: { 11:28:40 PM: from: '/images/earn/menu-lends-icon.svg', 11:28:40 PM: to: '/images/earn/menu-lends-icon.svg', 11:28:40 PM: conditions: { Cookie: [Array] }, 11:28:40 PM: status: 200 11:28:40 PM: }, 11:28:40 PM: { 11:28:40 PM: from: '/images/earn/money-bank.svg', 11:28:40 PM: to: '/images/earn/money-bank.svg', 11:28:40 PM: conditions: { Cookie: [Array] }, 11:28:40 PM: status: 200 11:28:40 PM: }, 11:28:40 PM: { 11:28:40 PM: from: '/images/earn/money-chest.svg', 11:28:40 PM: to: '/images/earn/money-chest.svg', 11:28:40 PM: conditions: { Cookie: [Array] }, 11:28:40 PM: status: 200 11:28:40 PM: }, 11:28:40 PM: { 11:28:40 PM: from: '/images/earn/moneybag.svg', 11:28:40 PM: to: '/images/earn/moneybag.svg', 11:28:40 PM: conditions: { Cookie: [Array] }, 11:28:40 PM: status: 200 11:28:40 PM: }, 11:28:40 PM: { 11:28:40 PM: from: '/images/earn/new-opportunities.svg', 11:28:40 PM: to: '/images/earn/new-opportunities.svg', 11:28:40 PM: conditions: { Cookie: [Array] }, 11:28:40 PM: status: 200 11:28:40 PM: }, 11:28:40 PM: { 11:28:40 PM: from: '/images/earn/passive-income.png', 11:28:40 PM: to: '/images/earn/passive-income.png', 11:28:40 PM: conditions: { Cookie: [Array] }, 11:28:40 PM: status: 200 11:28:40 PM: }, 11:28:40 PM: { 11:28:40 PM: from: '/images/earn/sad.svg', 11:28:40 PM: to: '/images/earn/sad.svg', 11:28:40 PM: conditions: { Cookie: [Array] }, 11:28:40 PM: status: 200 11:28:40 PM: }, 11:28:40 PM: { 11:28:40 PM: from: '/images/shared/blu-dai.png', 11:28:40 PM: to: '/images/shared/blu-dai.png', 11:28:40 PM: conditions: { Cookie: [Array] }, 11:28:40 PM: status: 200 11:28:40 PM: }, 11:28:40 PM: { 11:28:40 PM: from: '/images/shared/blu.png', 11:28:40 PM: to: '/images/shared/blu.png', 11:28:40 PM: conditions: { Cookie: [Array] }, 11:28:40 PM: status: 200 11:28:40 PM: }, 11:28:40 PM: { 11:28:40 PM: from: '/images/shared/dai.png', 11:28:40 PM: to: '/images/shared/dai.png', 11:28:40 PM: conditions: { Cookie: [Array] }, 11:28:40 PM: status: 200 11:28:40 PM: }, 11:28:40 PM: { 11:28:40 PM: from: '/images/shared/gnosis-safe.png', 11:28:40 PM: to: '/images/shared/gnosis-safe.png', 11:28:40 PM: conditions: { Cookie: [Array] }, 11:28:40 PM: status: 200 11:28:40 PM: }, 11:28:40 PM: { 11:28:40 PM: from: '/images/shared/logo-text.svg', 11:28:40 PM: to: '/images/shared/logo-text.svg', 11:28:40 PM: conditions: { Cookie: [Array] }, 11:28:40 PM: status: 200 11:28:40 PM: }, 11:28:40 PM: { 11:28:40 PM: from: '/images/shared/logo.svg', 11:28:40 PM: to: '/images/shared/logo.svg', 11:28:40 PM: conditions: { Cookie: [Array] }, 11:28:40 PM: status: 200 11:28:40 PM: }, 11:28:40 PM: { 11:28:40 PM: from: '/images/shared/metamask.svg', 11:28:40 PM: to: '/images/shared/metamask.svg', 11:28:40 PM: conditions: { Cookie: [Array] }, 11:28:40 PM: status: 200 11:28:40 PM: }, 11:28:40 PM: { 11:28:40 PM: from: '/images/shared/sgd-dai.png', 11:28:40 PM: to: '/images/shared/sgd-dai.png', 11:28:40 PM: conditions: { Cookie: [Array] }, 11:28:40 PM: status: 200 11:28:40 PM: }, 11:28:40 PM: { 11:28:40 PM: from: '/images/shared/sgd.png', 11:28:40 PM: to: '/images/shared/sgd.png', 11:28:40 PM: conditions: { Cookie: [Array] }, 11:28:40 PM: status: 200 11:28:40 PM: }, 11:28:40 PM: { 11:28:40 PM: from: '/images/shared/uniswap.png', 11:28:40 PM: to: '/images/shared/uniswap.png', 11:28:40 PM: conditions: { Cookie: [Array] }, 11:28:40 PM: status: 200 11:28:40 PM: }, 11:28:40 PM: { 11:28:40 PM: from: '/images/shared/uniswap.svg', 11:28:40 PM: to: '/images/shared/uniswap.svg', 11:28:40 PM: conditions: { Cookie: [Array] }, 11:28:40 PM: status: 200 11:28:40 PM: }, 11:28:40 PM: { 11:28:40 PM: from: '/images/shared/wallet-connect.svg', 11:28:40 PM: to: '/images/shared/wallet-connect.svg', 11:28:40 PM: conditions: { Cookie: [Array] }, 11:28:40 PM: status: 200 11:28:40 PM: }, 11:28:40 PM: { 11:28:40 PM: from: '/images/shared/xsgd.png', 11:28:40 PM: to: '/images/shared/xsgd.png', 11:28:40 PM: conditions: { Cookie: [Array] }, 11:28:40 PM: status: 200 11:28:40 PM: }, 11:28:40 PM: { 11:28:40 PM: from: '/*', 11:28:40 PM: to: '/.netlify/functions/___netlify-handler', 11:28:40 PM: status: 200, 11:28:40 PM: conditions: { Cookie: [Array] }, 11:28:40 PM: force: true 11:28:40 PM: }, 11:28:40 PM: { 11:28:40 PM: from: '/_next/data/TuNcHNqcTWet-lG8zeI1x/index.json', 11:28:40 PM: to: '/.netlify/functions/___netlify-handler', 11:28:40 PM: status: 200, 11:28:40 PM: force: false 11:28:40 PM: }, 11:28:40 PM: { 11:28:40 PM: from: '/', 11:28:40 PM: to: '/.netlify/functions/___netlify-handler', 11:28:40 PM: status: 200, 11:28:40 PM: force: false 11:28:40 PM: }, 11:28:40 PM: { 11:28:40 PM: from: '/_next/data/TuNcHNqcTWet-lG8zeI1x/bonds.json', 11:28:40 PM: to: '/.netlify/functions/___netlify-handler', 11:28:40 PM: status: 200, 11:28:40 PM: force: false 11:28:40 PM: }, 11:28:40 PM: { 11:28:40 PM: from: '/bonds', 11:28:40 PM: to: '/.netlify/functions/___netlify-handler', 11:28:40 PM: status: 200, 11:28:40 PM: force: false 11:28:40 PM: }, 11:28:40 PM: { 11:28:40 PM: from: '/_next/data/TuNcHNqcTWet-lG8zeI1x/bonds/stabilizing/dai-sgd.json', 11:28:40 PM: to: '/.netlify/functions/___netlify-handler', 11:28:40 PM: status: 200, 11:28:40 PM: force: false 11:28:40 PM: }, 11:28:40 PM: { 11:28:40 PM: from: '/bonds/stabilizing/dai-sgd', 11:28:40 PM: to: '/.netlify/functions/___netlify-handler', 11:28:40 PM: status: 200, 11:28:40 PM: force: false 11:28:40 PM: }, 11:28:40 PM: { 11:28:40 PM: from: '/_next/data/TuNcHNqcTWet-lG8zeI1x/cblu.json', 11:28:40 PM: to: '/.netlify/functions/___netlify-handler', 11:28:40 PM: status: 200, 11:28:40 PM: force: false 11:28:40 PM: }, 11:28:40 PM: { 11:28:40 PM: from: '/cblu', 11:28:40 PM: to: '/.netlify/functions/___netlify-handler', 11:28:40 PM: status: 200, 11:28:40 PM: force: false 11:28:40 PM: }, 11:28:40 PM: { 11:28:40 PM: from: '/_next/data/TuNcHNqcTWet-lG8zeI1x/earn.json', 11:28:40 PM: to: '/.netlify/functions/___netlify-handler', 11:28:40 PM: status: 200, 11:28:40 PM: force: false 11:28:40 PM: }, 11:28:40 PM: { 11:28:40 PM: from: '/earn', 11:28:40 PM: to: '/.netlify/functions/___netlify-handler', 11:28:40 PM: status: 200, 11:28:40 PM: force: false 11:28:40 PM: }, 11:28:40 PM: { 11:28:40 PM: from: '/_next/data/TuNcHNqcTWet-lG8zeI1x/faucet.json', 11:28:40 PM: to: '/.netlify/functions/___netlify-handler', 11:28:40 PM: status: 200, 11:28:40 PM: force: false 11:28:40 PM: }, 11:28:40 PM: { 11:28:40 PM: from: '/faucet', 11:28:40 PM: to: '/.netlify/functions/___netlify-handler', 11:28:40 PM: status: 200, 11:28:40 PM: force: false 11:28:40 PM: }, 11:28:40 PM: { 11:28:40 PM: from: '/_next/data/TuNcHNqcTWet-lG8zeI1x/pblu.json', 11:28:40 PM: to: '/.netlify/functions/___netlify-handler', 11:28:40 PM: status: 200, 11:28:40 PM: force: false 11:28:40 PM: }, 11:28:40 PM: { 11:28:40 PM: from: '/pblu', 11:28:40 PM: to: '/.netlify/functions/___netlify-handler', 11:28:40 PM: status: 200, 11:28:40 PM: force: false 11:28:40 PM: }, 11:28:40 PM: { 11:28:40 PM: from: '/_next/data/TuNcHNqcTWet-lG8zeI1x/poolfactory.json', 11:28:40 PM: to: '/.netlify/functions/___netlify-handler', 11:28:40 PM: status: 200, 11:28:40 PM: force: false 11:28:40 PM: }, 11:28:40 PM: { 11:28:40 PM: from: '/poolfactory', 11:28:40 PM: to: '/.netlify/functions/___netlify-handler', 11:28:40 PM: status: 200, 11:28:40 PM: force: false 11:28:40 PM: }, 11:28:40 PM: { 11:28:40 PM: from: '/_next/data/TuNcHNqcTWet-lG8zeI1x/staking.json', 11:28:40 PM: to: '/.netlify/functions/___netlify-handler', 11:28:40 PM: status: 200, 11:28:40 PM: force: false 11:28:40 PM: }, 11:28:40 PM: { 11:28:40 PM: from: '/staking', 11:28:40 PM: to: '/.netlify/functions/___netlify-handler', 11:28:40 PM: status: 200, 11:28:40 PM: force: false 11:28:40 PM: }, 11:28:40 PM: { 11:28:40 PM: from: '/_next/data/TuNcHNqcTWet-lG8zeI1x/swap/psm.json', 11:28:40 PM: to: '/.netlify/functions/___netlify-handler', 11:28:40 PM: status: 200, 11:28:40 PM: force: false 11:28:40 PM: }, 11:28:40 PM: { 11:28:40 PM: from: '/swap/psm', 11:28:40 PM: to: '/.netlify/functions/___netlify-handler', 11:28:40 PM: status: 200, 11:28:40 PM: force: false 11:28:40 PM: }, 11:28:40 PM: { 11:28:40 PM: from: '/_next/data/TuNcHNqcTWet-lG8zeI1x/swap/uniswap.json', 11:28:40 PM: to: '/.netlify/functions/___netlify-handler', 11:28:40 PM: status: 200, 11:28:40 PM: force: false 11:28:40 PM: }, 11:28:40 PM: { 11:28:40 PM: from: '/swap/uniswap', 11:28:40 PM: to: '/.netlify/functions/___netlify-handler', 11:28:40 PM: status: 200, 11:28:40 PM: force: false 11:28:40 PM: }, 11:28:40 PM: { 11:28:40 PM: from: '/_next/data/TuNcHNqcTWet-lG8zeI1x/system.json', 11:28:40 PM: to: '/.netlify/functions/___netlify-handler', 11:28:40 PM: status: 200, 11:28:40 PM: force: false 11:28:40 PM: }, 11:28:40 PM: { 11:28:40 PM: from: '/system', 11:28:40 PM: to: '/.netlify/functions/___netlify-handler', 11:28:40 PM: status: 200, 11:28:40 PM: force: false 11:28:40 PM: }, 11:28:40 PM: { 11:28:40 PM: from: '/_next/data/TuNcHNqcTWet-lG8zeI1x/testing.json', 11:28:40 PM: to: '/.netlify/functions/___netlify-handler', 11:28:40 PM: status: 200, 11:28:40 PM: force: false 11:28:40 PM: }, 11:28:40 PM: { 11:28:40 PM: from: '/testing', 11:28:40 PM: to: '/.netlify/functions/___netlify-handler', 11:28:40 PM: status: 200, 11:28:40 PM: force: false 11:28:40 PM: }, 11:28:40 PM: { 11:28:40 PM: from: '/_next/data/TuNcHNqcTWet-lG8zeI1x/bonds/treasury/:bondType.json', 11:28:40 PM: to: '/.netlify/functions/___netlify-handler', 11:28:40 PM: status: 200, 11:28:40 PM: force: false 11:28:40 PM: }, 11:28:40 PM: { 11:28:40 PM: from: '/bonds/treasury/:bondType', 11:28:40 PM: to: '/.netlify/functions/___netlify-handler', 11:28:40 PM: status: 200, 11:28:40 PM: force: false 11:28:40 PM: }, 11:28:40 PM: { 11:28:40 PM: from: '/_next/data/TuNcHNqcTWet-lG8zeI1x/borrower/:loanPoolAddress.json', 11:28:40 PM: to: '/.netlify/functions/___netlify-handler', 11:28:40 PM: status: 200, 11:28:40 PM: force: false 11:28:40 PM: }, 11:28:40 PM: { 11:28:40 PM: from: '/borrower/:loanPoolAddress', 11:28:40 PM: to: '/.netlify/functions/___netlify-handler', 11:28:40 PM: status: 200, 11:28:40 PM: force: false 11:28:40 PM: }, 11:28:40 PM: { 11:28:40 PM: from: '/_next/data/TuNcHNqcTWet-lG8zeI1x/earn/:loanPoolAddress.json', 11:28:40 PM: to: '/.netlify/functions/___netlify-handler', 11:28:40 PM: status: 200, 11:28:40 PM: force: false 11:28:40 PM: }, 11:28:40 PM: { 11:28:40 PM: from: '/earn/:loanPoolAddress', 11:28:40 PM: to: '/.netlify/functions/___netlify-handler', 11:28:40 PM: status: 200, 11:28:40 PM: force: false 11:28:40 PM: }, 11:28:40 PM: { 11:28:40 PM: from: '/_next/data/TuNcHNqcTWet-lG8zeI1x/swap/uniswap/:tokenInputAddress/:tokenOutputAddress.json', 11:28:40 PM: to: '/.netlify/functions/___netlify-handler', 11:28:40 PM: status: 200, 11:28:40 PM: force: false 11:28:40 PM: }, 11:28:40 PM: { 11:28:40 PM: from: '/swap/uniswap/:tokenInputAddress/:tokenOutputAddress', 11:28:40 PM: to: '/.netlify/functions/___netlify-handler', 11:28:40 PM: status: 200, 11:28:40 PM: force: false 11:28:40 PM: }, 11:28:40 PM: { 11:28:40 PM: from: '/*', 11:28:40 PM: to: '/.netlify/functions/___netlify-handler', 11:28:40 PM: status: 200 11:28:40 PM: } 11:28:40 PM: ]. 11:28:40 PM: 11:28:40 PM: (@netlify/plugin-nextjs onBuild completed in 119ms)
I have one netlify.toml, but no redirects inside. Here is the content:
[[plugins]] package = "@netlify/plugin-nextjs" [[headers]] for = "/manifest.json" [headers.values] Access-Control-Allow-Origin = "*" [[headers]] for = "/*" [headers.values] Content-Security-Policy = "default-src 'self';" Content-Security-Policy = "script-src-elem https://netlify-cdp-loader.netlify.app/netlify.js https://www.googletagmanager.com/gtag/js" Content-Security-Policy = "connect-src https://eth-goerli.g.alchemy.com https://eth-mainnet.g.alchemy.com https://*.google-analytics.com https://lend-metadata.s3.ap-southeast-1.amazonaws.com https://lend-metadata-production.s3.ap-southeast-1.amazonaws.com https://api.coingecko.com wss://*.bridge.walletconnect.org https://registry.walletconnect.com https://mainnet.infura.io"
I added the plugin section to try as I found some posts mentioning it, but it didn’t change anything.
In case it helps here are the build settings:
Runtime: Next.js Base directory: Not set Build command: lerna bootstrap && lerna run build --scope "'@bluejayfinance/contracts'" && lerna run build --scope "'@bluejayfinance/dapp'" Publish directory: packages/dapp/.next Build status: Active
lerna run build --scope "'@bluejayfinance/dapp runs next build