0
votes

I added the Meteor-CollectionFS lib to my Meteor project and noticed that file uploads are not working due to the error Exception in delivering result of invoking '/cfs.images.filerecord/insert': TypeError: undefined is not a function.

On digging about I could see that the undefined is not a function is being thrown from within cfs_upload-http.js by a call to Accounts._storedLoginToken()

I don't think that CollectionFS is the cause of the problem as I created a dummy project with the same dependencies as my project - when I call Accounts._storedLoginToken() from the console in the dummy project the login token is returned, however, when I make the same call from the console from my own project I get the error TypeError: undefined is not a function

Any ideas as to what could cause this?

Thanks in advance

Neil.

PS Worth pointing out that 1) in both the dummy and original projects, I was logged in when calling storedLoginToken 2) accounts packages and cfs collection packages are the same versions in both dummy and other project.


Update:

As requested, here are the dependencies for the dummy project (which works) and the real project (which doesn't). Note that I'm not actually calling the cfs stuff in the dummy project as I'm more focussed on the storedLoginText() problem (cfs problem looks like being a symptom of this, rather than the cause).

dummy project packages

meteor-platform mizzao:bootstrap-3 underscore ian:accounts-ui-bootstrap-3 accounts-password aldeed:autoform aldeed:collection2 cfs:standard-packages cfs:ui cfs:filesystem iron:router zimme:iron-router-active

dummy project versions

[email protected] [email protected] aldeed:[email protected] aldeed:[email protected] aldeed:[email protected] anti:[email protected] [email protected] [email protected] [email protected] [email protected] [email protected] [email protected] [email protected] [email protected] cfs:[email protected] cfs:[email protected] cfs:[email protected] cfs:[email protected] cfs:[email protected] cfs:[email protected] cfs:[email protected] cfs:[email protected] cfs:[email protected] cfs:[email protected] cfs:[email protected] cfs:[email protected] cfs:[email protected] cfs:[email protected] cfs:[email protected] cfs:[email protected] cfs:[email protected] cfs:[email protected] [email protected] [email protected] [email protected] [email protected] [email protected] [email protected] [email protected] [email protected] [email protected] [email protected] [email protected] [email protected] [email protected] ian:[email protected] [email protected] iron:[email protected] iron:[email protected] iron:[email protected] iron:[email protected] iron:[email protected] iron:[email protected] iron:[email protected] iron:[email protected] [email protected] [email protected] [email protected] [email protected] [email protected] [email protected] [email protected] [email protected] [email protected] [email protected] mizzao:[email protected]_1 [email protected] momentjs:[email protected] [email protected] [email protected] [email protected] [email protected] [email protected] raix:[email protected] [email protected] [email protected] [email protected] [email protected] [email protected] [email protected] [email protected] [email protected] [email protected] [email protected] [email protected] [email protected] [email protected] [email protected] [email protected] [email protected] [email protected] [email protected] [email protected] [email protected] wizonesolutions:[email protected] zimme:[email protected]

Real project packages

meteor-platform mizzao:bootstrap-3 underscore iron:router sacha:spin ian:accounts-ui-bootstrap-3 accounts-password aldeed:autoform aldeed:collection2 zimme:iron-router-active cfs:standard-packages cfs:filesystem cfs:ui

Real project versions

[email protected] [email protected] aldeed:[email protected] aldeed:[email protected] aldeed:[email protected] anti:[email protected] [email protected] [email protected] [email protected] [email protected] [email protected] [email protected] [email protected] [email protected] cfs:[email protected] cfs:[email protected] cfs:[email protected] cfs:[email protected] cfs:[email protected] cfs:[email protected] cfs:[email protected] cfs:[email protected] cfs:[email protected] cfs:[email protected] cfs:[email protected] cfs:[email protected] cfs:[email protected] cfs:[email protected] cfs:[email protected] cfs:[email protected] cfs:[email protected] cfs:[email protected] [email protected] [email protected] [email protected] [email protected] [email protected] [email protected] [email protected] [email protected] [email protected] [email protected] [email protected] [email protected] [email protected] ian:[email protected] [email protected] iron:[email protected] iron:[email protected] iron:[email protected] iron:[email protected] iron:[email protected] iron:[email protected] iron:[email protected] iron:[email protected] [email protected] [email protected] [email protected] [email protected] [email protected] [email protected] [email protected] [email protected] [email protected] [email protected] mizzao:[email protected]_1 [email protected] momentjs:[email protected] [email protected] [email protected] [email protected] [email protected] [email protected] raix:[email protected] [email protected] [email protected] [email protected] [email protected] [email protected] [email protected] sacha:[email protected] [email protected] [email protected] [email protected] [email protected] [email protected] [email protected] [email protected] [email protected] [email protected] [email protected] [email protected] [email protected] [email protected] [email protected] wizonesolutions:[email protected] zimme:[email protected]

1
Hi Neil can you list the packages you are using in both projects ? (Project root --> /.meteor/packages && /.meteor/versions) - Meteorpoly
@Nell are you inserting some metadata like ownerId:Meteor.userId()? - Ethaan
@Ethaan I wasn't before, but I added an ownerId field. I still get the same failure. I should point out that the image record is definitely saved to the db (with the correct ownerId), however, the image itself is not on the filesystem. - Neil
did you have something like this? Example.insert('example',function(err){ if(!err){console.log(err.reason}}) - Ethaan
Hi @Meteorpoly - I've added the packages / versions above. - Neil

1 Answers

1
votes

Ok, I figured out the problem and the solution is as simple as it is embarrassing :)

Here goes..... don't call your own collections 'Accounts'.

Yup, the reason that Accounts._storedLoginToken() was erroring is that it was calling the method on my collection - not the one declared in the, um, accounts package.

I'll leave this answer here in the unlikely event that someone repeats my mistake (and because I deserve it :)