Skip to content
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

Error [TypeError]: Cannot read properties of null (reading 'length') at isSubdomain with Next 13 #55181

Closed
1 task done
connor11528 opened this issue Sep 9, 2023 · 3 comments
Labels
bug Issue was opened via the bug report template. locked please add a complete reproduction The issue lacks information for further investigation

Comments

@connor11528
Copy link

Link to the code that reproduces this issue or a replay of the bug

https://app.replay.io/recording/replay--41152657-8bf0-4f25-b67c-d4a985bb8dfe

To Reproduce

  1. Start application with npm run dev
  2. Application homepage will not load. In the console I get the error:
npm run dev

> employbl-frontend@0.1.0 dev
> next dev

   ▲ Next.js 13.4.20-canary.23
   - Local:        http://localhost:3000
   - Experiments (use at your own risk):
      · cpus
      · scrollRestoration

 ✓ ready
 ✓ compiled /middleware in 196ms (89 modules)
Browserslist: caniuse-lite is outdated. Please run:
  npx update-browserslist-db@latest
  Why you should do it regularly: https://github.com/browserslist/update-db#readme
 ✓ compiled / in 1630ms (596 modules)
TypeError: Cannot read properties of null (reading 'length')
    at isSubdomain (/Users/connorleech/code/employbl-frontend/node_modules/follow-redirects/index.js:592:41)
    at RedirectableRequest._processResponse (/Users/connorleech/code/employbl-frontend/node_modules/follow-redirects/index.js:427:7)
    at RedirectableRequest._onNativeResponse (/Users/connorleech/code/employbl-frontend/node_modules/follow-redirects/index.js:57:10)
    at Object.onceWrapper (node:events:629:26)
    at ClientRequest.emit (node:events:514:28)
    at HTTPParser.parserOnIncomingClient [as onIncoming] (node:_http_client:693:27)
    at HTTPParser.parserOnHeadersComplete (node:_http_common:119:17)
    at Socket.socketOnData (node:_http_client:535:22)
    at Socket.emit (node:events:514:28)
    at addChunk (node:internal/streams/readable:343:12)
    at readableAddChunk (node:internal/streams/readable:316:9)
    at Readable.push (node:internal/streams/readable:253:10)
    at TCP.onStreamRead (node:internal/stream_base_commons:190:23)
 X uncaughtException: Error [TypeError]: Cannot read properties of null (reading 'length')
    at isSubdomain (/Users/connorleech/code/employbl-frontend/node_modules/follow-redirects/index.js:592:41)
    at RedirectableRequest._processResponse (/Users/connorleech/code/employbl-frontend/node_modules/follow-redirects/index.js:427:7)
    at RedirectableRequest._onNativeResponse (/Users/connorleech/code/employbl-frontend/node_modules/follow-redirects/index.js:57:10)
    at Object.onceWrapper (node:events:629:26)
    at ClientRequest.emit (node:events:514:28)
    at HTTPParser.parserOnIncomingClient [as onIncoming] (node:_http_client:693:27)
    at HTTPParser.parserOnHeadersComplete (node:_http_common:119:17)
    at Socket.socketOnData (node:_http_client:535:22)
    at Socket.emit (node:events:514:28)
    at addChunk (node:internal/streams/readable:343:12)
    at readableAddChunk (node:internal/streams/readable:316:9)
    at Readable.push (node:internal/streams/readable:253:10)
    at TCP.onStreamRead (node:internal/stream_base_commons:190:23) {
  digest: undefined
}

I first noticed this after doing a deploy I got 404 on my homepage in production. I redeployed the same code using Vercel and the issue disappeared but now it is happening for me locally. One interesting thing was that when the bug was happening in production my site www.employbl.com did not work but the vercel prod deployment https://employbl-frontend-employbl.vercel.app/ loaded fine. Now it's my local that's not working as both sites work after the redeploy.

Current vs. Expected behavior

Current behavior in my local env is the site fails to load with the message in the terminal from above. Locally, after a long time I get a 500 response

Screenshot 2023-09-09 at 1 30 13 PM

Expected behavior is for the page to load. This was working fine last week I've made minimal changes.

Verify canary release

  • I verified that the issue exists in the latest Next.js canary release

Provide environment information

Operating System:
      Platform: darwin
      Arch: arm64
      Version: Darwin Kernel Version 22.6.0: Wed Jul  5 22:21:53 PDT 2023; root:xnu-8796.141.3~6/RELEASE_ARM64_T6020
    Binaries:
      Node: 20.6.0
      npm: 9.8.1
      Yarn: N/A
      pnpm: N/A
    Relevant Packages:
      next: 13.4.20-canary.23
      eslint-config-next: 13.1.0
      react: 18.2.0
      react-dom: 18.2.0
      typescript: 4.7.4
    Next.js Config:
      output: N/A

Which area(s) are affected? (Select all that apply)

Not sure

Additional context

I test across Next 13.03 as suggested in this stackoverflow question: https://stackoverflow.com/questions/74415937/nextjs-typeerror-cannot-read-properties-of-null-reading-length as well as canary and latest stable release but keep getting the same issue.

@connor11528 connor11528 added the bug Issue was opened via the bug report template. label Sep 9, 2023
@balazsorban44
Copy link
Member

The stack trace does not mention Next.js, and follow-redirects is not part of Next.js either.

You accidentally linked to a replay of the replay.io new tab, instead of your own app.

"minimal changes" is also subjective, if you can link to the actual repo with the last commit that worked and broke, it might help with speeding up the investigation.

From what you are describing, it sounds to me that you are using a custom server setup, where req and res might be modified in a way that breaks follow-redirects. Since you say it works on Vercel, which does not support a custom server, hence working in your case.

@balazsorban44 balazsorban44 added the please add a complete reproduction The issue lacks information for further investigation label Sep 11, 2023
@github-actions
Copy link
Contributor

We cannot recreate the issue with the provided information. Please add a reproduction in order for us to be able to investigate.

Why was this issue marked with the please add a complete reproduction label?

To be able to investigate, we need access to a reproduction to identify what triggered the issue. We prefer a link to a public GitHub repository (template for App Router, template for Pages Router), but you can also use these templates: CodeSandbox: App Router or CodeSandbox: Pages Router.

To make sure the issue is resolved as quickly as possible, please make sure that the reproduction is as minimal as possible. This means that you should remove unnecessary code, files, and dependencies that do not contribute to the issue. Ensure your reproduction does not depend on secrets, 3rd party registries, private dependencies, or any other data that cannot be made public. Avoid a reproduction including a whole monorepo (unless relevant to the issue). The easier it is to reproduce the issue, the quicker we can help.

Please test your reproduction against the latest version of Next.js (next@canary) to make sure your issue has not already been fixed.

If you cannot create a clean reproduction, another way you can help the maintainers' job is to pinpoint the canary version of next that introduced the issue. Check out our releases, and try to find the first canary release that introduced the issue. This will help us narrow down the scope of the issue, and possibly point to the PR/code change that introduced it. You can install a specific version of next by running npm install next@<version>.

I added a link, why was it still marked?

Ensure the link is pointing to a codebase that is accessible (e.g. not a private repository). "example.com", "n/a", "will add later", etc. are not acceptable links -- we need to see a public codebase. See the above section for accepted links.

What happens if I don't provide a sufficient minimal reproduction?

Issues with the please add a complete reproduction label that receives no meaningful activity (e.g. new comments with a reproduction link) are automatically closed and locked after 30 days.

If your issue has not been resolved in that time and it has been closed/locked, please open a new issue with the required reproduction.

I did not open this issue, but it is relevant to me, what can I do to help?

Anyone experiencing the same issue is welcome to provide a minimal reproduction following the above steps. Furthermore, you can upvote the issue using the 👍 reaction on the topmost comment (please do not comment "I have the same issue" without reproduction steps). Then, we can sort issues by votes to prioritize.

I think my reproduction is good enough, why aren't you looking into it quicker?

We look into every Next.js issue and constantly monitor open issues for new comments.

However, sometimes we might miss one or two due to the popularity/high traffic of the repository. We apologize, and kindly ask you to refrain from tagging core maintainers, as that will usually not result in increased priority.

Upvoting issues to show your interest will help us prioritize and address them as quickly as possible. That said, every issue is important to us, and if an issue gets closed by accident, we encourage you to open a new one linking to the old issue and we will look into it.

Useful Resources

kodiakhq bot pushed a commit that referenced this issue Sep 18, 2023
### What?

Removes Replay.io as a valid reproduction link from our bug template.

### Why?

Based on issues #55181 and #55278 it looks like people are struggling to report the correct thing. Also, without source maps, replays are still harder to use for debugging than an actual code base

Ref: [Slack thread](https://vercel.slack.com/archives/C04DUD7EB1B/p1694608481515339?thread_ts=1694428848.689079&cid=C04DUD7EB1B)
Copy link
Contributor

github-actions bot commented Nov 4, 2023

This closed issue has been automatically locked because it had no new activity for 2 weeks. If you are running into a similar issue, please create a new issue with the steps to reproduce. Thank you.

@github-actions github-actions bot added the locked label Nov 4, 2023
@github-actions github-actions bot locked as resolved and limited conversation to collaborators Nov 4, 2023
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
bug Issue was opened via the bug report template. locked please add a complete reproduction The issue lacks information for further investigation
Projects
None yet
Development

No branches or pull requests

2 participants