# Error: uncaughtException: Cannot find module 'Joi'

**URL:** <https://discuss.circleci.com/t/error-uncaughtexception-cannot-find-module-joi/24949>\
**Category:** Build Environment\
**Tags:** npm, yarn, nodejs\
**Created:** [September 6, 2018, 8:06pm UTC](https://discuss.circleci.com/t/error-uncaughtexception-cannot-find-module-joi/24949 "2018-09-06T20:06:22Z")\
**Posts on this page:** 7\
**Page:** 1

<div class="post-metadata">

**Author:** ![souravlahoti](https://sea2.discourse-cdn.com/circleci/user_avatar/discuss.circleci.com/souravlahoti/32/19095_2.png) [@souravlahoti](https://discuss.circleci.com/u/souravlahoti)\
**Post date:** [September 6, 2018, 8:06pm UTC](https://discuss.circleci.com/t/error-uncaughtexception-cannot-find-module-joi/24949/1 "2018-09-06T20:06:22Z")

</div>

This is my **config.yml** file

```
# Javascript Node CircleCI 2.0 configuration file
#
# Check https://circleci.com/docs/2.0/language-javascript/ for more details
#
version: 2
machine:
  services:
    - mongodb
jobs:
  build:
    docker:
      # specify the version you desire here
      - image: circleci/node:8.11.1
      
      # Specify service dependencies here if necessary
      # CircleCI maintains a library of pre-built images
      # documented at https://circleci.com/docs/2.0/circleci-images/
      - image: circleci/mongo:3.4.15

    working_directory: ~/repo

    steps:
      - checkout

      # Download and cache dependencies
      - restore_cache:
          keys:
          - v1-dependencies-{{ checksum "package.json" }}
          # fallback to using the latest cache if no exact match is found
          - v1-dependencies-
  
      - run: yarn install

      - save_cache:
          paths:
            - node_modules
          key: v1-dependencies-{{ checksum "package.json" }}
        
      # run tests!
      - run: yarn test

```

But whenever I run the build it exits with code 1 on CircleCI  
With Error log as:

```
yarn run v1.5.1
$ nyc mocha --timeout 10000 --exit
19:56:59 - error: uncaughtException: Cannot find module 'Joi' date=Thu Sep 06 2018 19:56:59 GMT+0000 

```

My **package.json** file seems to have **JOI** defined and also the test cases run fine on local machine.

```
{
  "name": "crm-dcr-api",
  "main": "server.js",
  "repository": {
    "type": "git",
    "url": ""
  },
  "scripts": {
    "start": "nodemon server.js",
    "test": "nyc mocha --timeout 10000 --exit",
    "test-coverage": "istanbul cover _mocha -- -u exports -R spec --exit",
    "sync": "node ./jobs/",
    "gulp": "gulp"
  },
  "author": "Sourav Lahoti",
  "license": "MIT",
  "dependencies": {
    "app-module-path": "^2.2.0",
    "async-redis": "^1.1.4",
    "body-parser": "~1.18.2",
    "cli-table": "^0.3.1",
    "compression": "^1.7.3",
    "express": "~4.16.1",
    "g": "^2.0.1",
    "getenv": "^0.7.0",
    "gulp": "^3.9.1",
    "gulp-mocha": "^5.0.0",
    "https": "^1.0.0",
    "joi": "^13.6.0",
    "jsonwebtoken": "^8.2.1",
    "lodash": "^4.17.10",
    "mocha-junit-reporter": "^1.17.0",
    "mongoose": "~4.11.14",
    "morgan": "~1.9.0",
    "node-fetch": "^2.1.2",
    "node-schedule": "^1.3.0",
    "nodemon": "^1.17.4",
    "query-params-mongo": "^1.0.4",
    "querystring": "^0.2.0",
    "request": "^2.85.0",
    "request-promise": "^4.2.2",
    "winston": "^2.4.1"
  },
  "devDependencies": {
    "chai": "^4.1.2",
    "istanbul": "^0.4.5",
    "mocha": "^5.0.5",
    "nyc": "^11.6.0",
    "supertest": "^3.0.0"
  }
}
```

---

<div class="post-metadata">

**Author:** ![halfer](https://sea2.discourse-cdn.com/circleci/user_avatar/discuss.circleci.com/halfer/32/9083_2.png) [@halfer](https://discuss.circleci.com/u/halfer)\
**Post date:** [September 6, 2018, 8:37pm UTC](https://discuss.circleci.com/t/error-uncaughtexception-cannot-find-module-joi/24949/2 "2018-09-06T20:37:54Z")

</div>

What’s the output of your `yarn install`? Maybe that failed.

It may be worth examining your working directory to see if your dependencies are actually in `node_modules`. I assume the cache in meant to restore them - did it? I’d suggest using the SSH rebuild feature in the CircleCI build UI to find out.

---

<div class="post-metadata">

**Author:** ![souravlahoti](https://sea2.discourse-cdn.com/circleci/user_avatar/discuss.circleci.com/souravlahoti/32/19095_2.png) [@souravlahoti](https://discuss.circleci.com/u/souravlahoti)\
**Post date:** [September 7, 2018, 7:32am UTC](https://discuss.circleci.com/t/error-uncaughtexception-cannot-find-module-joi/24949/3 "2018-09-07T07:32:35Z")

</div>

I have checked the node\_modules I see Joi being installed

---

<div class="post-metadata">

**Author:** ![halfer](https://sea2.discourse-cdn.com/circleci/user_avatar/discuss.circleci.com/halfer/32/9083_2.png) [@halfer](https://discuss.circleci.com/u/halfer)\
**Post date:** [September 7, 2018, 7:33am UTC](https://discuss.circleci.com/t/error-uncaughtexception-cannot-find-module-joi/24949/4 "2018-09-07T07:33:50Z")

</div>

OK. Readers are probably going to need more than that to help. What else have you got? 😸

---

<div class="post-metadata">

**Author:** ![souravlahoti](https://sea2.discourse-cdn.com/circleci/user_avatar/discuss.circleci.com/souravlahoti/32/19095_2.png) [@souravlahoti](https://discuss.circleci.com/u/souravlahoti)\
**Post date:** [September 7, 2018, 7:47am UTC](https://discuss.circleci.com/t/error-uncaughtexception-cannot-find-module-joi/24949/5 "2018-09-07T07:47:28Z")

</div>

You wouldn’t believe but I change my code from  
`let Joi = require('Joi')`  
to  
`let joi = require('joi')`  
all small-case, surprisingly it fixed the build.  
But I am guessing y it worked locally 🤔

---

<div class="post-metadata">

**Author:** ![halfer](https://sea2.discourse-cdn.com/circleci/user_avatar/discuss.circleci.com/halfer/32/9083_2.png) [@halfer](https://discuss.circleci.com/u/halfer)\
**Post date:** [September 7, 2018, 7:49am UTC](https://discuss.circleci.com/t/error-uncaughtexception-cannot-find-module-joi/24949/6 "2018-09-07T07:49:39Z")

</div>

Ooh, nice. Is your local file system case insensitive? Are you on a Windows dev machine?

---

<div class="post-metadata">

**Author:** ![system](https://global.discourse-cdn.com/circleci/original/3X/5/1/511608acda8e85906e15909b57bd0a46c1dbe291.png) [@system](https://discuss.circleci.com/u/system)\
**Post date:** [September 17, 2018, 7:49am UTC](https://discuss.circleci.com/t/error-uncaughtexception-cannot-find-module-joi/24949/7 "2018-09-17T07:49:40Z")

</div>

This topic was automatically closed 10 days after the last reply. New replies are no longer allowed.
