jcs / rubywarden

An unofficial, mostly Bitwarden-compatible API server written in Ruby (Sinatra and ActiveRecord)
ISC License
593 stars 49 forks source link

- NoMethodError - undefined method `passwordhistory' for #<Cipher:0x00000008093a8b38>: #98

Closed cattivik66 closed 5 years ago

cattivik66 commented 5 years ago

I don't know why, but I cannot sync anymore my account. It's only a week that I am using this solution, so perhaps it's my fault.

I simply click on the sync button, and I get this log: 192.168,0.41 - - [03/Jun/2019:09:12:31 +0200] "GET /icons/192.168,0.1/icon.png HTTP/1.1" 302 - 0.0007 D, [2019-06-03T09:12:40.539684 #73930] DEBUG -- : Device Load (0.2ms) SELECT "devices".* FROM "devices" WHERE "devices"."access_token" = ? LIMIT ? [["access_token", "***CUT***"], ["LIMIT", 1]] D, [2019-06-03T09:12:40.558941 #73930] DEBUG -- : User Load (0.2ms) SELECT "users".* FROM "users" WHERE "users"."uuid" = ? LIMIT ? [["uuid", "216b0a0b-5a92-402a-8de6-e7e773a23e9e"], ["LIMIT", 1]] D, [2019-06-03T09:12:40.577923 #73930] DEBUG -- : Folder Load (0.3ms) SELECT "folders".* FROM "folders" WHERE "folders"."user_uuid" = ? [["user_uuid", "216b0a0b-5a92-402a-8de6-e7e773a23e9e"]] D, [2019-06-03T09:12:40.585987 #73930] DEBUG -- : Cipher Load (0.3ms) SELECT "ciphers".* FROM "ciphers" WHERE "ciphers"."user_uuid" = ? [["user_uuid", "216b0a0b-5a92-402a-8de6-e7e773a23e9e"]] D, [2019-06-03T09:12:40.602938 #73930] DEBUG -- : Attachment Load (0.1ms) SELECT "attachments".* FROM "attachments" WHERE "attachments"."cipher_uuid" = ? [["cipher_uuid", "3d944ed2-9ded-403a-9634-a772b19e5cfb"]] 2019-06-03 09:12:40 - NoMethodError - undefined methodpasswordhistory' for #: /usr/home/rubywarden/rubywarden/vendor/bundle/ruby/2.4/gems/activemodel-5.1.6/lib/active_model/attribute_methods.rb:432:in method_missing' /usr/home/rubywarden/rubywarden/lib/cipher.rb:103:into_hash' /usr/home/rubywarden/rubywarden/lib/routes/api.rb:112:in block (3 levels) in registered' /usr/home/rubywarden/rubywarden/vendor/bundle/ruby/2.4/gems/activerecord-5.1.6/lib/active_record/relation/delegation.rb:39:ineach' /usr/home/rubywarden/rubywarden/vendor/bundle/ruby/2.4/gems/activerecord-5.1.6/lib/active_record/relation/delegation.rb:39:in each' /usr/home/rubywarden/rubywarden/lib/routes/api.rb:112:inmap' /usr/home/rubywarden/rubywarden/lib/routes/api.rb:112:in block (2 levels) in registered' /usr/home/rubywarden/rubywarden/vendor/bundle/ruby/2.4/gems/sinatra-2.0.3/lib/sinatra/base.rb:1635:incall' /usr/home/rubywarden/rubywarden/vendor/bundle/ruby/2.4/gems/sinatra-2.0.3/lib/sinatra/base.rb:1635:in block in compile!' /usr/home/rubywarden/rubywarden/vendor/bundle/ruby/2.4/gems/sinatra-2.0.3/lib/sinatra/base.rb:992:inblock (3 levels) in route!' /usr/home/rubywarden/rubywarden/vendor/bundle/ruby/2.4/gems/sinatra-2.0.3/lib/sinatra/base.rb:1011:in route_eval' /usr/home/rubywarden/rubywarden/vendor/bundle/ruby/2.4/gems/sinatra-2.0.3/lib/sinatra/base.rb:992:inblock (2 levels) in route!' /usr/home/rubywarden/rubywarden/vendor/bundle/ruby/2.4/gems/sinatra-2.0.3/lib/sinatra/base.rb:1040:in block in process_route' /usr/home/rubywarden/rubywarden/vendor/bundle/ruby/2.4/gems/sinatra-2.0.3/lib/sinatra/base.rb:1038:incatch' /usr/home/rubywarden/rubywarden/vendor/bundle/ruby/2.4/gems/sinatra-2.0.3/lib/sinatra/base.rb:1038:in process_route' /usr/home/rubywarden/rubywarden/vendor/bundle/ruby/2.4/gems/sinatra-2.0.3/lib/sinatra/base.rb:990:inblock in route!' /usr/home/rubywarden/rubywarden/vendor/bundle/ruby/2.4/gems/sinatra-2.0.3/lib/sinatra/base.rb:989:in each' /usr/home/rubywarden/rubywarden/vendor/bundle/ruby/2.4/gems/sinatra-2.0.3/lib/sinatra/base.rb:989:inroute!' /usr/home/rubywarden/rubywarden/vendor/bundle/ruby/2.4/gems/sinatra-2.0.3/lib/sinatra/base.rb:1097:in block in dispatch!' /usr/home/rubywarden/rubywarden/vendor/bundle/ruby/2.4/gems/sinatra-2.0.3/lib/sinatra/base.rb:1076:inblock in invoke' /usr/home/rubywarden/rubywarden/vendor/bundle/ruby/2.4/gems/sinatra-2.0.3/lib/sinatra/base.rb:1076:in catch' /usr/home/rubywarden/rubywarden/vendor/bundle/ruby/2.4/gems/sinatra-2.0.3/lib/sinatra/base.rb:1076:ininvoke' /usr/home/rubywarden/rubywarden/vendor/bundle/ruby/2.4/gems/sinatra-2.0.3/lib/sinatra/base.rb:1094:in dispatch!' /usr/home/rubywarden/rubywarden/vendor/bundle/ruby/2.4/gems/sinatra-2.0.3/lib/sinatra/base.rb:924:inblock in call!' /usr/home/rubywarden/rubywarden/vendor/bundle/ruby/2.4/gems/sinatra-2.0.3/lib/sinatra/base.rb:1076:in block in invoke' /usr/home/rubywarden/rubywarden/vendor/bundle/ruby/2.4/gems/sinatra-2.0.3/lib/sinatra/base.rb:1076:incatch' /usr/home/rubywarden/rubywarden/vendor/bundle/ruby/2.4/gems/sinatra-2.0.3/lib/sinatra/base.rb:1076:in invoke' /usr/home/rubywarden/rubywarden/vendor/bundle/ruby/2.4/gems/sinatra-2.0.3/lib/sinatra/base.rb:924:incall!' /usr/home/rubywarden/rubywarden/vendor/bundle/ruby/2.4/gems/sinatra-2.0.3/lib/sinatra/base.rb:913:in call' /usr/home/rubywarden/rubywarden/vendor/bundle/ruby/2.4/gems/rack-protection-2.0.3/lib/rack/protection/xss_header.rb:18:incall' /usr/home/rubywarden/rubywarden/vendor/bundle/ruby/2.4/gems/rack-protection-2.0.3/lib/rack/protection/path_traversal.rb:16:in call' /usr/home/rubywarden/rubywarden/vendor/bundle/ruby/2.4/gems/rack-protection-2.0.3/lib/rack/protection/json_csrf.rb:26:incall' /usr/home/rubywarden/rubywarden/vendor/bundle/ruby/2.4/gems/rack-protection-2.0.3/lib/rack/protection/base.rb:50:in call' /usr/home/rubywarden/rubywarden/vendor/bundle/ruby/2.4/gems/rack-protection-2.0.3/lib/rack/protection/base.rb:50:incall' /usr/home/rubywarden/rubywarden/vendor/bundle/ruby/2.4/gems/rack-protection-2.0.3/lib/rack/protection/frame_options.rb:31:in call' /usr/home/rubywarden/rubywarden/vendor/bundle/ruby/2.4/gems/rack-2.0.6/lib/rack/logger.rb:15:incall' /usr/home/rubywarden/rubywarden/vendor/bundle/ruby/2.4/gems/sinatra-2.0.3/lib/sinatra/base.rb:224:in call' /usr/home/rubywarden/rubywarden/vendor/bundle/ruby/2.4/gems/rack-2.0.6/lib/rack/head.rb:12:incall' /usr/home/rubywarden/rubywarden/vendor/bundle/ruby/2.4/gems/sinatra-2.0.3/lib/sinatra/base.rb:194:in call' /usr/home/rubywarden/rubywarden/vendor/bundle/ruby/2.4/gems/sinatra-2.0.3/lib/sinatra/base.rb:1958:incall' /usr/home/rubywarden/rubywarden/vendor/bundle/ruby/2.4/gems/sinatra-2.0.3/lib/sinatra/base.rb:1502:in block in call' /usr/home/rubywarden/rubywarden/vendor/bundle/ruby/2.4/gems/sinatra-2.0.3/lib/sinatra/base.rb:1729:insynchronize' /usr/home/rubywarden/rubywarden/vendor/bundle/ruby/2.4/gems/sinatra-2.0.3/lib/sinatra/base.rb:1502:in call' /usr/home/rubywarden/rubywarden/vendor/bundle/ruby/2.4/gems/rack-2.0.6/lib/rack/tempfile_reaper.rb:15:incall' /usr/home/rubywarden/rubywarden/vendor/bundle/ruby/2.4/gems/rack-2.0.6/lib/rack/common_logger.rb:33:in call' /usr/home/rubywarden/rubywarden/vendor/bundle/ruby/2.4/gems/sinatra-2.0.3/lib/sinatra/base.rb:231:incall' /usr/home/rubywarden/rubywarden/vendor/bundle/ruby/2.4/gems/rack-2.0.6/lib/rack/chunked.rb:54:in call' /usr/home/rubywarden/rubywarden/vendor/bundle/ruby/2.4/gems/rack-2.0.6/lib/rack/content_length.rb:15:incall' /usr/home/rubywarden/rubywarden/vendor/bundle/ruby/2.4/gems/rack-2.0.6/lib/rack/handler/webrick.rb:86:in service' /usr/local/lib/ruby/2.4/webrick/httpserver.rb:140:inservice' /usr/local/lib/ruby/2.4/webrick/httpserver.rb:96:in run' /usr/local/lib/ruby/2.4/webrick/server.rb:308:inblock in start_thread' 192.168,0.41 - - [03/Jun/2019:09:12:40 +0200] "GET /api/sync HTTP/1.1" 500 30 0.0802 `

Perhaps the problem is with something I have stored on the db?

To fix the issue I have tried to make a new clean installation and restoring the old DB, and the output is the same.

jcs commented 5 years ago

You have to migrate the database. Per the README:

sudo -u _rubywarden env RUBYWARDEN_ENV=production bundle exec rake db:migrate