berry: [Bug] Error: Assertion failed: The dependent package could not be found

  • I’d be willing to implement a fix

Describe the bug

When I attempt to run yarn in my workspace I receive this error:

Error: Assertion failed: The dependent package could not be found

The error itself is rather unhelpful and doesn’t tell you what the dependent package was, however I tweaked the source code a little and got it to tell me that in my case it is react-dom@npm:16.8.6 that it is choking on. The dependency tree for react-dom in my workspace is as follows:

  • Root
    • resolution: "react-dom": "16.8.6"
    • workspaces:
      • a
        • dependencies
          • j
          • l
        • devDependencies:
          • k
        • peerDependencies:
          • "react-dom": ">=16.8.0"
      • b
        • dependencies
          • j
          • l
          • m
        • devDependencies:
          • "react-dom": "^16.8.6"
          • k
        • peerDependencies:
          • "react-dom": ">=16.8.0"
      • c
        • dependencies
          • j
          • l
        • peerDependencies:
          • "react-dom": ">=16.8.0"
      • d
        • dependencies
          • j
          • l
        • devDependencies:
          • k
        • peerDependencies:
          • "react-dom": ">=16.8.0"
      • e
        • dependencies
          • j
          • l
        • devDependencies:
          • "react-dom": "^16.6.8"
          • k
        • peerDependencies:
          • "react-dom": ">=16.8.0"
      • f
        • dependencies
          • j
          • l
        • devDependencies:
          • k
        • peerDependencies:
          • "react-dom": ">=16.8.0"
      • g
        • dependencies
          • j
          • l
        • devDependencies:
          • "react-dom": "^16.8.6"
          • k
      • h
        • dependencies
          • j
          • l
        • devDependencies:
          • k
        • peerDependencies:
          • "react-dom": ">=16.8.0"
      • i
        • dependencies
          • j
          • l
        • devDependencies:
          • "react-dom": "^16.8.6"
          • k
        • peerDependencies:
          • "react-dom": ">=16.8.0"
      • j
        • dependencies:
          • "react-dom": "^16.9.0"
      • k
        • dependencies:
          • "react-dom": "16.8"
          • j
      • l
        • dependencies
          • j
        • peerDependencies:
          • "react-dom": ">=16.8.0"
      • m
        • dependencies
          • j
          • l
        • devDependencies:
          • "react-dom": "^16.8.6"
          • k
        • peerDependencies:
          • "react-dom": ">=16.8.0"
      • n
        • dependencies:
          • "react-dom": "^16.8.6"
          • l
      • o
        • dependencies:
          • "react-dom": "^16.8.6"
      • p
        • dependencies:
          • "react-dom": "^16.8.6"
          • a
          • b
          • c
          • d
          • e
          • f
          • g
          • h
          • i

This is just a single pass

To Reproduce

Run yarn in https://github.com/georeith/berry-609

Screenshots

If applicable, add screenshots to help explain your problem.

Environment if relevant (please complete the following information):

  • OS: [e.g. OSX, Linux, Windows, …]
  • Node version [e.g. 8.15.0, 10.15.1, …]
  • Yarn version [e.g. 2.0.0-rc1, …]

Additional context

We have a lot of peer dependencies in the workspace packages that are provided as dependencies by the root package.json but these spit out a lot of warnings, e.g.,:

➤ YN0002: │ @marvelapp/ui@workspace:src/packages/marvel-ui [85b8c] [56877] doesn't provide react-dom@* requested by @testing-library/react@npm:8.0.1 [92105] [1a0f7]
➤ YN0002: │ @marvelapp/ui@workspace:src/packages/marvel-ui [85b8c] [56877] doesn't provide @babel/core@^7.0.0 requested by babel-jest@npm:24.9.0 [92105] [1a0f7]
➤ YN0002: │ @marvelapp/ui@workspace:src/packages/marvel-ui [85b8c] [56877] doesn't provide react-dom@>15 requested by react-div-100vh@npm:0.3.4 [92105] [1a0f7]
➤ YN0002: │ @marvelapp/ui@workspace:src/packages/marvel-ui [85b8c] [56877] doesn't provide react-dom@>15.4.2 <17.0.0 requested by react-intl-tel-input@npm:7.0.1 [92105] [1a0f7]
➤ YN0002: │ @marvelapp/ui@workspace:src/packages/marvel-ui [85b8c] [56877] doesn't provide react-dom@^16.1.1 requested by react-lightweight-tooltip@npm:1.0.0 [92105] [1a0f7]
➤ YN0002: │ @marvelapp/ui@workspace:src/packages/marvel-ui [85b8c] [56877] doesn't provide react-dom@^16.3.2 requested by react-pose@npm:4.0.2 [92105] [1a0f7]
➤ YN0002: │ @marvelapp/ui@workspace:src/packages/marvel-ui [85b8c] [56877] doesn't provide react-dom@^16.8.1 requested by react-select-search@npm:0.9.6 [92105] [1a0f7]
➤ YN0002: │ @marvelapp/ui@workspace:src/packages/marvel-ui [85b8c] [56877] doesn't provide react-dom@^15.0.0 || ^16.0.0 requested by react-textfit@npm:1.1.0 [92105] [1a0f7]
➤ YN0002: │ react-apollo@npm:3.0.1 [85b8c] [56877] doesn't provide apollo-utilities@^1.3.2 requested by @apollo/react-common@npm:3.0.1 [5d567]
➤ YN0002: │ react-apollo@npm:3.0.1 [85b8c] [56877] doesn't provide apollo-cache@^1.3.2 requested by @apollo/react-components@npm:3.1.2 [5d567]
➤ YN0002: │ react-apollo@npm:3.0.1 [85b8c] [56877] doesn't provide apollo-link@^1.2.12 requested by @apollo/react-components@npm:3.1.2 [5d567]
➤ YN0002: │ react-apollo@npm:3.0.1 [85b8c] [56877] doesn't provide apollo-utilities@^1.3.2 requested by @apollo/react-components@npm:3.1.2 [5d567]
➤ YN0002: │ @apollo/react-hooks@npm:3.0.1 [de1d7] [21625] doesn't provide apollo-utilities@^1.3.2 requested by @apollo/react-common@npm:3.0.1 [803f1]
➤ YN0002: │ @apollo/react-hoc@npm:3.1.2 [5d567] [8ed8c] doesn't provide apollo-utilities@^1.3.2 requested by @apollo/react-common@npm:3.0.1 [777d3]
➤ YN0002: │ @apollo/react-hoc@npm:3.1.2 [5d567] [8ed8c] doesn't provide apollo-cache@^1.3.2 requested by @apollo/react-components@npm:3.1.2 [777d3]
➤ YN0002: │ @apollo/react-hoc@npm:3.1.2 [5d567] [8ed8c] doesn't provide apollo-link@^1.2.12 requested by @apollo/react-components@npm:3.1.2 [777d3]
➤ YN0002: │ @apollo/react-hoc@npm:3.1.2 [5d567] [8ed8c] doesn't provide apollo-utilities@^1.3.2 requested by @apollo/react-components@npm:3.1.2 [777d3]
➤ YN0002: │ @apollo/react-hooks@npm:3.0.1 [c3205] [a250a] doesn't provide apollo-utilities@^1.3.2 requested by @apollo/react-common@npm:3.0.1 [e75e6]
➤ YN0002: │ @apollo/react-hooks@npm:3.0.1 [5d567] [8ed8c] doesn't provide apollo-utilities@^1.3.2 requested by @apollo/react-common@npm:3.0.1 [dcbbc]
➤ YN0002: │ @apollo/react-ssr@npm:3.1.2 [5d567] [8ed8c] doesn't provide @types/react@^16.8.0 requested by @apollo/react-common@npm:3.0.1 [a1528]
➤ YN0002: │ @apollo/react-ssr@npm:3.1.2 [5d567] [8ed8c] doesn't provide apollo-client@^2.6.4 requested by @apollo/react-common@npm:3.0.1 [a1528]
➤ YN0002: │ @apollo/react-ssr@npm:3.1.2 [5d567] [8ed8c] doesn't provide apollo-utilities@^1.3.2 requested by @apollo/react-common@npm:3.0.1 [a1528]
➤ YN0002: │ @apollo/react-ssr@npm:3.1.2 [5d567] [8ed8c] doesn't provide graphql@^14.3.1 requested by @apollo/react-common@npm:3.0.1 [a1528]
➤ YN0002: │ @apollo/react-ssr@npm:3.1.2 [5d567] [8ed8c] doesn't provide @types/react@^16.8.0 requested by @apollo/react-hooks@npm:3.0.1 [a1528]
➤ YN0002: │ @apollo/react-ssr@npm:3.1.2 [5d567] [8ed8c] doesn't provide apollo-client@^2.6.4 requested by @apollo/react-hooks@npm:3.0.1 [a1528]
➤ YN0002: │ @apollo/react-ssr@npm:3.1.2 [5d567] [8ed8c] doesn't provide graphql@^14.3.1 requested by @apollo/react-hooks@npm:3.0.1 [a1528]
➤ YN0002: │ @apollo/react-hooks@npm:3.0.1 [a1528] [eaa30] doesn't provide apollo-utilities@^1.3.2 requested by @apollo/react-common@npm:3.0.1 [116f6]
➤ YN0002: │ react-apollo@npm:3.0.1 [682af] doesn't provide apollo-utilities@^1.3.2 requested by @apollo/react-common@npm:3.0.1
➤ YN0002: │ react-apollo@npm:3.0.1 [682af] doesn't provide apollo-cache@^1.3.2 requested by @apollo/react-components@npm:3.1.2
➤ YN0002: │ react-apollo@npm:3.0.1 [682af] doesn't provide apollo-link@^1.2.12 requested by @apollo/react-components@npm:3.1.2
➤ YN0002: │ react-apollo@npm:3.0.1 [682af] doesn't provide apollo-utilities@^1.3.2 requested by @apollo/react-components@npm:3.1.2
➤ YN0002: │ @apollo/react-hooks@npm:3.0.1 [6863a] doesn't provide apollo-utilities@^1.3.2 requested by @apollo/react-common@npm:3.0.1
➤ YN0002: │ @apollo/react-hoc@npm:3.1.2 [dc44d] doesn't provide apollo-utilities@^1.3.2 requested by @apollo/react-common@npm:3.0.1
➤ YN0002: │ @apollo/react-hoc@npm:3.1.2 [dc44d] doesn't provide apollo-cache@^1.3.2 requested by @apollo/react-components@npm:3.1.2
➤ YN0002: │ @apollo/react-hoc@npm:3.1.2 [dc44d] doesn't provide apollo-link@^1.2.12 requested by @apollo/react-components@npm:3.1.2
➤ YN0002: │ @apollo/react-hoc@npm:3.1.2 [dc44d] doesn't provide apollo-utilities@^1.3.2 requested by @apollo/react-components@npm:3.1.2
➤ YN0002: │ @apollo/react-hooks@npm:3.0.1 [6d993] doesn't provide apollo-utilities@^1.3.2 requested by @apollo/react-common@npm:3.0.1
➤ YN0002: │ @apollo/react-hooks@npm:3.0.1 [dc44d] doesn't provide apollo-utilities@^1.3.2 requested by @apollo/react-common@npm:3.0.1
➤ YN0002: │ @apollo/react-ssr@npm:3.1.2 [dc44d] doesn't provide @types/react@^16.8.0 requested by @apollo/react-common@npm:3.0.1
➤ YN0002: │ @apollo/react-ssr@npm:3.1.2 [dc44d] doesn't provide apollo-client@^2.6.4 requested by @apollo/react-common@npm:3.0.1
➤ YN0002: │ @apollo/react-ssr@npm:3.1.2 [dc44d] doesn't provide apollo-utilities@^1.3.2 requested by @apollo/react-common@npm:3.0.1
➤ YN0002: │ @apollo/react-ssr@npm:3.1.2 [dc44d] doesn't provide graphql@^14.3.1 requested by @apollo/react-common@npm:3.0.1
➤ YN0002: │ @apollo/react-ssr@npm:3.1.2 [dc44d] doesn't provide @types/react@^16.8.0 requested by @apollo/react-hooks@npm:3.0.1
➤ YN0002: │ @apollo/react-ssr@npm:3.1.2 [dc44d] doesn't provide apollo-client@^2.6.4 requested by @apollo/react-hooks@npm:3.0.1
➤ YN0002: │ @apollo/react-ssr@npm:3.1.2 [dc44d] doesn't provide graphql@^14.3.1 requested by @apollo/react-hooks@npm:3.0.1
➤ YN0002: │ @apollo/react-hooks@npm:3.0.1 [83318] doesn't provide apollo-utilities@^1.3.2 requested by @apollo/react-common@npm:3.0.1

Is this set up no longer supported?

About this issue

  • Original URL
  • State: closed
  • Created 5 years ago
  • Comments: 21 (9 by maintainers)

Most upvoted comments

I think I found the problem - we’re doing a delete here, so if a virtualised package is deduplicated while at the same time depending on a peer dependency that will be deduplicated, we’re going to hit the assertion here. I’ll try to make a repro and submit a fix.

It takes me about 16 minutes per yarn to get to this error which is frustrating when you are making tweaks.

Is it the “Docker is super slow problem”? Can you share the timings for each step? Which one is the slowest?

That would be good, would be definitely helpful to add more context to this error message too.

Btw I forgot to mention it, but by running yarn set version from sources --no-minify you’ll get a build straight from master, without minification. It’s easier to find out what is crashing and where, and put console.log around.

I’ve reduced it down to the following, and after checking the logic it seems coherent with my free-befoe-use theory. Now to write it into code 😄

image

Thanks a lot! I’ve been able to reproduce the problem, I’ll work to reduce it tomorrow. It seems to be linked to react-apollo too 🤔

Do I just have to specify it as a dev dependency also?

Yep! This will act as the default dependency when the workspace is accessed from its own folder (and it will pick up the right peer dependencies if another workspace depends on it).

Note that you can use yarn up lodash to upgrade lodash across all your workspaces at once. It makes it less tedious to manage duplicated dependencies (plus yarn upgrade-interactive with the @yarnpkg/interactive-tools plugin).