generator-angular-fullstack icon indicating copy to clipboard operation
generator-angular-fullstack copied to clipboard

Warning: a promise was created in a handler but was not returned from it, see http://goo.gl/rRqMUw

Open Aabling opened this issue 9 years ago • 7 comments

  • [x] I understand that GitHub issues are not for tech support, but for questions specific to this generator, bug reports, and feature requests.
Item Version
generator-angular-fullstack x.x.x
Node 4.6.0
npm 4.0.2
Operating System Windows 10
etc etc
Item Answer
Transpiler Babel
Markup Pug
CSS SCSS
Router ui-router
Client Tests Mocha
DB SQL
Auth Y
etc etc

I just installed using yo angular-fullstack, when running the app I get an warning - any clue why?


Warning: a promise was created in a handler but was not returned from it, see http://goo.gl/rRqMUw at Function.Promise.bind (C:\Users\saa\OneDrive\Work\EUFREX\Website\EUFREX1\node_modules\bluebird\js\release\bind.js:65:20) at processImmediate [as _immediateCallback] (timers.js:383:17) From previous event: at null.Model.findAll (C:\Users\saa\OneDrive\Work\EUFREX\Website\EUFREX1\node_modules\sequelize\lib\model.js:1355:18) at index (C:/Users/saa/OneDrive/Work/EUFREX/Website/EUFREX1/server/api/thing/thing.controller.js:68:16) at Layer.handle [as handle_request] (C:\Users\saa\OneDrive\Work\EUFREX\Website\EUFREX1\node_modules\express\lib\router\layer.js:95:5) at next (C:\Users\saa\OneDrive\Work\EUFREX\Website\EUFREX1\node_modules\express\lib\router\route.js:131:13) at Route.dispatch (C:\Users\saa\OneDrive\Work\EUFREX\Website\EUFREX1\node_modules\express\lib\router\route.js:112:3) at Layer.handle [as handle_request] (C:\Users\saa\OneDrive\Work\EUFREX\Website\EUFREX1\node_modules\express\lib\router\layer.js:95:5) at C:\Users\saa\OneDrive\Work\EUFREX\Website\EUFREX1\node_modules\express\lib\router\index.js:277:22 at Function.process_params (C:\Users\saa\OneDrive\Work\EUFREX\Website\EUFREX1\node_modules\express\lib\router\index.js:330:12) at next (C:\Users\saa\OneDrive\Work\EUFREX\Website\EUFREX1\node_modules\express\lib\router\index.js:271:10) at Function.handle (C:\Users\saa\OneDrive\Work\EUFREX\Website\EUFREX1\node_modules\express\lib\router\index.js:176:3) at router (C:\Users\saa\OneDrive\Work\EUFREX\Website\EUFREX1\node_modules\express\lib\router\index.js:46:12) at Layer.handle [as handle_request] (C:\Users\saa\OneDrive\Work\EUFREX\Website\EUFREX1\node_modules\express\lib\router\layer.js:95:5) at trim_prefix (C:\Users\saa\OneDrive\Work\EUFREX\Website\EUFREX1\node_modules\express\lib\router\index.js:312:13) at C:\Users\saa\OneDrive\Work\EUFREX\Website\EUFREX1\node_modules\express\lib\router\index.js:280:7 at Function.process_params (C:\Users\saa\OneDrive\Work\EUFREX\Website\EUFREX1\node_modules\express\lib\router\index.js:330:12) at next (C:\Users\saa\OneDrive\Work\EUFREX\Website\EUFREX1\node_modules\express\lib\router\index.js:271:10) at Layer.handle [as handle_request] (C:\Users\saa\OneDrive\Work\EUFREX\Website\EUFREX1\node_modules\express\lib\router\layer.js:91:12) at trim_prefix (C:\Users\saa\OneDrive\Work\EUFREX\Website\EUFREX1\node_modules\express\lib\router\index.js:312:13) at C:\Users\saa\OneDrive\Work\EUFREX\Website\EUFREX1\node_modules\express\lib\router\index.js:280:7 at Function.process_params (C:\Users\saa\OneDrive\Work\EUFREX\Website\EUFREX1\node_modules\express\lib\router\index.js:330:12) at next (C:\Users\saa\OneDrive\Work\EUFREX\Website\EUFREX1\node_modules\express\lib\router\index.js:271:10) at checkCsrf (C:\Users\saa\OneDrive\Work\EUFREX\Website\EUFREX1\node_modules\lusca\lib\csrf.js:74:20) at C:\Users\saa\OneDrive\Work\EUFREX\Website\EUFREX1\node_modules\lusca\index.js:48:21 at hsts (C:\Users\saa\OneDrive\Work\EUFREX\Website\EUFREX1\node_modules\lusca\lib\hsts.js:25:9) at C:\Users\saa\OneDrive\Work\EUFREX\Website\EUFREX1\node_modules\lusca\index.js:48:21 From previous event: at Promise.then (C:\Users\saa\OneDrive\Work\EUFREX\Website\EUFREX1\node_modules\sequelize\lib\promise.js:21:17) at E4Store.get (C:\Users\saa\OneDrive\Work\EUFREX\Website\EUFREX1\node_modules\express-sequelize-session\lib\e4store.js:56:12) at session (C:\Users\saa\OneDrive\Work\EUFREX\Website\EUFREX1\node_modules\express-session\index.js:444:11) at Layer.handle [as handle_request] (C:\Users\saa\OneDrive\Work\EUFREX\Website\EUFREX1\node_modules\express\lib\router\layer.js:95:5) at trim_prefix (C:\Users\saa\OneDrive\Work\EUFREX\Website\EUFREX1\node_modules\express\lib\router\index.js:312:13) at C:\Users\saa\OneDrive\Work\EUFREX\Website\EUFREX1\node_modules\express\lib\router\index.js:280:7 at Function.process_params (C:\Users\saa\OneDrive\Work\EUFREX\Website\EUFREX1\node_modules\express\lib\router\index.js:330:12) at next (C:\Users\saa\OneDrive\Work\EUFREX\Website\EUFREX1\node_modules\express\lib\router\index.js:271:10) at initialize (C:\Users\saa\OneDrive\Work\EUFREX\Website\EUFREX1\node_modules\passport\lib\middleware\initialize.js:53:5) at Layer.handle [as handle_request] (C:\Users\saa\OneDrive\Work\EUFREX\Website\EUFREX1\node_modules\express\lib\router\layer.js:95:5) at trim_prefix (C:\Users\saa\OneDrive\Work\EUFREX\Website\EUFREX1\node_modules\express\lib\router\index.js:312:13) at C:\Users\saa\OneDrive\Work\EUFREX\Website\EUFREX1\node_modules\express\lib\router\index.js:280:7 at Function.process_params (C:\Users\saa\OneDrive\Work\EUFREX\Website\EUFREX1\node_modules\express\lib\router\index.js:330:12) at next (C:\Users\saa\OneDrive\Work\EUFREX\Website\EUFREX1\node_modules\express\lib\router\index.js:271:10) at cookieParser (C:\Users\saa\OneDrive\Work\EUFREX\Website\EUFREX1\node_modules\cookie-parser\index.js:70:5) at Layer.handle [as handle_request] (C:\Users\saa\OneDrive\Work\EUFREX\Website\EUFREX1\node_modules\express\lib\router\layer.js:95:5) at trim_prefix (C:\Users\saa\OneDrive\Work\EUFREX\Website\EUFREX1\node_modules\express\lib\router\index.js:312:13) at C:\Users\saa\OneDrive\Work\EUFREX\Website\EUFREX1\node_modules\express\lib\router\index.js:280:7 at Function.process_params (C:\Users\saa\OneDrive\Work\EUFREX\Website\EUFREX1\node_modules\express\lib\router\index.js:330:12) at next (C:\Users\saa\OneDrive\Work\EUFREX\Website\EUFREX1\node_modules\express\lib\router\index.js:271:10) at methodOverride (C:\Users\saa\OneDrive\Work\EUFREX\Website\EUFREX1\node_modules\method-override\index.js:65:14) at Layer.handle [as handle_request] (C:\Users\saa\OneDrive\Work\EUFREX\Website\EUFREX1\node_modules\express\lib\router\layer.js:95:5) at trim_prefix (C:\Users\saa\OneDrive\Work\EUFREX\Website\EUFREX1\node_modules\express\lib\router\index.js:312:13) at C:\Users\saa\OneDrive\Work\EUFREX\Website\EUFREX1\node_modules\express\lib\router\index.js:280:7 at Function.process_params (C:\Users\saa\OneDrive\Work\EUFREX\Website\EUFREX1\node_modules\express\lib\router\index.js:330:12) GET /api/things 304 51.262 ms - - GET /assets/fonts/bootstrap/glyphicons-halflings-regular.woff 404 40.043 ms - 14 GET /assets/fonts/bootstrap/glyphicons-halflings-regular.ttf 404 11.941 ms - 14

Aabling avatar Dec 20 '16 15:12 Aabling

See #2412 for the answer and correction. Also, I believe that #2363 is a duplicate of this issue.

JoelParke avatar Dec 20 '16 22:12 JoelParke

I tried that, but I am still getting the warning. I can see that I get the same warning whenever returning a sequelize model.

thing.controller.js:68

return Thing.findAll()
    .then(respondWithResult(res))
    .catch(handleError(res));

thing.controller.js:87

return Thing.create(req.body)
    .then(respondWithResult(res, 201))
    .catch(handleError(res));

thing.controller.js:125

return Thing.find({
    where: {
      _id: req.params.id
    }
  })
    .then(handleEntityNotFound(res))
    .then(removeEntity(res))
    .catch(handleError(res));

Aabling avatar Dec 21 '16 06:12 Aabling

This is an issue with Sequelize, please report it to them

Awk34 avatar Dec 26 '16 22:12 Awk34

@Awk34, I agree that the issue is upstream but it seems to be in express-sequelize-session 0.4.0 rather than sequelize.

In E4Store.get (express-sequelize-session/lib/e4store.js), the then() handler has two paths that make a callback without returning the promise. See lines 58 and 60 of e4store.js.

      E4Store.prototype.get = function(sid, callback) {
        return this.Session.findOne({
          where: {
            sid: sid
          },
          attributes: ['data']
        }).then(function(session) {
          if (session != null) {
            return typeof callback === "function" ? callback(null, JSON.parse(session.data)) : void 0;
          } else {
            return typeof callback === "function" ? callback(null, null) : void 0;
          }
        })["catch"](function(err) {
          return typeof callback === "function" ? callback(err, null) : void 0;
        });
      };

Changing

          if (session != null) {
            return typeof callback === "function" ? callback(null, JSON.parse(session.data)) : void 0;
          } else {
            return typeof callback === "function" ? callback(null, null) : void 0;
          }

to

          if (session != null && typeof callback === "function") {
            callback(null, JSON.parse(session.data));
          } else {
            callback(null, null);
          }
          return null;

fixes the warning.

I see Pull Request #3 from over a year ago was an attempt to address this but failed the checks.

Do you think this is the culprit other generator-angular-fullstack users are running into?

Here's the stack trace from my project:

(node:878) Warning: a promise was created in a handler at /Users/nates/dev/shy/node_modules/express/lib/router/index.js:317:13 but was not returned from it, see http://goo.gl/rRqMUw
    at Function.Promise.attempt.Promise.try (/Users/nates/dev/shy/node_modules/bluebird/js/release/method.js:29:9)
    at runCallback (timers.js:781:20)
    at tryOnImmediate (timers.js:743:5)
    at processImmediate [as _immediateCallback] (timers.js:714:5)
From previous event:
    at Function.findAll (/Users/nates/dev/shy/node_modules/sequelize/lib/model.js:1495:23)
    at index (/Users/nates/dev/shy/server/api/announcement/announcement.controller.js:19:23)
    at Layer.handle [as handle_request] (/Users/nates/dev/shy/node_modules/express/lib/router/layer.js:95:5)
    at next (/Users/nates/dev/shy/node_modules/express/lib/router/route.js:137:13)
    at Route.dispatch (/Users/nates/dev/shy/node_modules/express/lib/router/route.js:112:3)
    at Layer.handle [as handle_request] (/Users/nates/dev/shy/node_modules/express/lib/router/layer.js:95:5)
    at /Users/nates/dev/shy/node_modules/express/lib/router/index.js:281:22
    at Function.process_params (/Users/nates/dev/shy/node_modules/express/lib/router/index.js:335:12)
    at next (/Users/nates/dev/shy/node_modules/express/lib/router/index.js:275:10)
    at Function.handle (/Users/nates/dev/shy/node_modules/express/lib/router/index.js:174:3)
    at router (/Users/nates/dev/shy/node_modules/express/lib/router/index.js:47:12)
    at Layer.handle [as handle_request] (/Users/nates/dev/shy/node_modules/express/lib/router/layer.js:95:5)
    at trim_prefix (/Users/nates/dev/shy/node_modules/express/lib/router/index.js:317:13)
    at /Users/nates/dev/shy/node_modules/express/lib/router/index.js:284:7
    at Function.process_params (/Users/nates/dev/shy/node_modules/express/lib/router/index.js:335:12)
    at next (/Users/nates/dev/shy/node_modules/express/lib/router/index.js:275:10)
    at Layer.handle [as handle_request] (/Users/nates/dev/shy/node_modules/express/lib/router/layer.js:91:12)
    at trim_prefix (/Users/nates/dev/shy/node_modules/express/lib/router/index.js:317:13)
    at /Users/nates/dev/shy/node_modules/express/lib/router/index.js:284:7
    at Function.process_params (/Users/nates/dev/shy/node_modules/express/lib/router/index.js:335:12)
    at next (/Users/nates/dev/shy/node_modules/express/lib/router/index.js:275:10)
    at checkCsrf (/Users/nates/dev/shy/node_modules/lusca/lib/csrf.js:95:20)
    at /Users/nates/dev/shy/node_modules/lusca/index.js:59:28
    at hsts (/Users/nates/dev/shy/node_modules/lusca/lib/hsts.js:25:9)
    at /Users/nates/dev/shy/node_modules/lusca/index.js:59:28
    at xframe (/Users/nates/dev/shy/node_modules/lusca/lib/xframes.js:12:9)
    at /Users/nates/dev/shy/node_modules/lusca/index.js:59:28
    at xssProtection (/Users/nates/dev/shy/node_modules/lusca/lib/xssprotection.js:16:9)
    at /Users/nates/dev/shy/node_modules/lusca/index.js:59:28
    at lusca (/Users/nates/dev/shy/node_modules/lusca/index.js:64:9)
From previous event:
    at E4Store.get (/Users/nates/dev/shy/node_modules/express-sequelize-session/lib/e4store.js:56:12)
    at session (/Users/nates/dev/shy/node_modules/express-session/index.js:460:11)
    at Layer.handle [as handle_request] (/Users/nates/dev/shy/node_modules/express/lib/router/layer.js:95:5)
    at trim_prefix (/Users/nates/dev/shy/node_modules/express/lib/router/index.js:317:13)
    at /Users/nates/dev/shy/node_modules/express/lib/router/index.js:284:7
    at Function.process_params (/Users/nates/dev/shy/node_modules/express/lib/router/index.js:335:12)
    at next (/Users/nates/dev/shy/node_modules/express/lib/router/index.js:275:10)
    at initialize (/Users/nates/dev/shy/node_modules/passport/lib/middleware/initialize.js:53:5)
    at Layer.handle [as handle_request] (/Users/nates/dev/shy/node_modules/express/lib/router/layer.js:95:5)
    at trim_prefix (/Users/nates/dev/shy/node_modules/express/lib/router/index.js:317:13)
    at /Users/nates/dev/shy/node_modules/express/lib/router/index.js:284:7
    at Function.process_params (/Users/nates/dev/shy/node_modules/express/lib/router/index.js:335:12)
    at next (/Users/nates/dev/shy/node_modules/express/lib/router/index.js:275:10)
    at cookieParser (/Users/nates/dev/shy/node_modules/cookie-parser/index.js:70:5)
    at Layer.handle [as handle_request] (/Users/nates/dev/shy/node_modules/express/lib/router/layer.js:95:5)
    at trim_prefix (/Users/nates/dev/shy/node_modules/express/lib/router/index.js:317:13)
    at /Users/nates/dev/shy/node_modules/express/lib/router/index.js:284:7
    at Function.process_params (/Users/nates/dev/shy/node_modules/express/lib/router/index.js:335:12)
    at next (/Users/nates/dev/shy/node_modules/express/lib/router/index.js:275:10)
    at methodOverride (/Users/nates/dev/shy/node_modules/method-override/index.js:65:14)
    at Layer.handle [as handle_request] (/Users/nates/dev/shy/node_modules/express/lib/router/layer.js:95:5)
    at trim_prefix (/Users/nates/dev/shy/node_modules/express/lib/router/index.js:317:13)
    at /Users/nates/dev/shy/node_modules/express/lib/router/index.js:284:7
    at Function.process_params (/Users/nates/dev/shy/node_modules/express/lib/router/index.js:335:12)
    at next (/Users/nates/dev/shy/node_modules/express/lib/router/index.js:275:10)
    at jsonParser (/Users/nates/dev/shy/node_modules/body-parser/lib/types/json.js:103:7)
    at Layer.handle [as handle_request] (/Users/nates/dev/shy/node_modules/express/lib/router/layer.js:95:5)
    at trim_prefix (/Users/nates/dev/shy/node_modules/express/lib/router/index.js:317:13)
    at /Users/nates/dev/shy/node_modules/express/lib/router/index.js:284:7
    at Function.process_params (/Users/nates/dev/shy/node_modules/express/lib/router/index.js:335:12)
    at next (/Users/nates/dev/shy/node_modules/express/lib/router/index.js:275:10)

nstuyvesant avatar Aug 13 '17 14:08 nstuyvesant

I should also note that express-sequelize-session has not been actively maintained for 2 years and is not recommended as a compatible store in the read me for express-session. I decided to switch to connect-session-sequelize and it got rid of the warning. Perhaps generator-angular-fullstack should consider replacing express-sequelize-session?

nstuyvesant avatar Aug 14 '17 03:08 nstuyvesant

@nstuyvesant yeah, it should be a fairly straightforward PR if you've got the time

Awk34 avatar Aug 14 '17 06:08 Awk34

No problem... just added PR 2623.

nstuyvesant avatar Aug 20 '17 18:08 nstuyvesant