Carrier loading: Encoding :: UndefinedConversionError: "\ xFF" from ASCII-8BIT to UTF-8

Got this error in production, but can't figure out where the problem is. The same request is great for local development. But do not cope with the production. I am creating an API for using mobile clients

Error tracing

`` ``

Encoding::UndefinedConversionError: "\xFF" from ASCII-8BIT to UTF-8 ... 39 non-project frames File"/home/deploy/.bundler/example/ruby/2.0.0/gems/activesupport4.1.0/lib/active_support/core_ext/object/json.rb" line 34 in encode File"/home/deploy/.bundler/example/ruby/2.0.0/gems/activesupport4.1.0/lib/active_support/core_ext/object/json.rb" line 34 in to_json File"/home/deploy/.bundler/example/ruby/2.0.0/gems/activesupport4.1.0/lib/active_support/core_ext/object/json.rb" line 34 in to_json_with_active_support_encoder File"/home/deploy/.bundler/example/ruby/2.0.0/gems/activesupport4.1.0/lib/active_support/json/encoding.rb" line 56 in to_json File "/home/deploy/.bundler/example/ruby/2.0.0/gems/json-1.8.1/lib/json/common.rb" line 223 in generate File "/home/deploy/.bundler/example/ruby/2.0.0/gems/json-1.8.1/lib/json/common.rb" line 223 in generate File"/home/deploy/.bundler/example/ruby/2.0.0/gems/activesupport4.1.0/lib/active_support/json/encoding.rb" line 96 in stringify File "/home/deploy/.bundler/example/ruby/2.0.0/gems/activesupport4.1.0/lib/active_support/json/encoding.rb" line 34 in encode File "/home/deploy/.bundler/example/ruby/2.0.0/gems/activesupport-4.1.0/lib/active_support/json/encoding.rb" line 21 in encode File "/home/deploy/.bundler/example/ruby/2.0.0/gems/activesupport-4.1.0/lib/active_support/core_ext/object/json.rb" line 37 in to_json_with_active_support_encoder File "/home/deploy/.bundler/example/ruby/2.0.0/gems/multi_json-1.10.1/lib/multi_json/adapters/json_common.rb" line 21 in dump File "/home/deploy/.bundler/example/ruby/2.0.0/gems/multi_json-1.10.1/lib/multi_json/adapter.rb" line 24 in dump File "/home/deploy/.bundler/example/ruby/2.0.0/gems/multi_json-1.10.1/lib/multi_json.rb" line 136 in dump File "/home/deploy/.bundler/example/ruby/2.0.0/gems/rollbar-0.12.20/lib/rollbar.rb" line 437 in build_payload File "/home/deploy/.bundler/example/ruby/2.0.0/gems/rollbar-0.12.20/lib/rollbar.rb" line 95 in report_exception File "/home/deploy/.bundler/example/ruby/2.0.0/gems/rollbar-0.12.20/lib/rollbar/exception_reporter.rb" line 9 in report_exception_to_rollbar File "/home/deploy/.bundler/example/ruby/2.0.0/gems/rollbar-0.12.20/lib/rollbar/middleware/rails/show_exceptions.rb" line 22 in rescue in call_with_rollbar File "/home/deploy/.bundler/example/ruby/2.0.0/gems/rollbar-0.12.20/lib/rollbar/middleware/rails/show_exceptions.rb" line 19 in call_with_rollbar File "/home/deploy/.bundler/example/ruby/2.0.0/gems/actionpack-4.1.0/lib/action_dispatch/middleware/show_exceptions.rb" line 30 in call File "/home/deploy/.bundler/example/ruby/2.0.0/gems/railties-4.1.0/lib/rails/rack/logger.rb" line 38 in call_app File "/home/deploy/.bundler/example/ruby/2.0.0/gems/railties-4.1.0/lib/rails/rack/logger.rb" line 20 in block in call File "/home/deploy/.bundler/example/ruby/2.0.0/gems/activesupport-4.1.0/lib/active_support/tagged_logging.rb" line 68 in block in tagged File "/home/deploy/.bundler/example/ruby/2.0.0/gems/activesupport-4.1.0/lib/active_support/tagged_logging.rb" line 26 in tagged File "/home/deploy/.bundler/example/ruby/2.0.0/gems/activesupport-4.1.0/lib/active_support/tagged_logging.rb" line 68 in tagged File "/home/deploy/.bundler/example/ruby/2.0.0/gems/railties-4.1.0/lib/rails/rack/logger.rb" line 20 in call File "/home/deploy/.bundler/example/ruby/2.0.0/gems/actionpack-4.1.0/lib/action_dispatch/middleware/request_id.rb" line 21 in call File "/home/deploy/.bundler/example/ruby/2.0.0/gems/rack-1.5.2/lib/rack/methodoverride.rb" line 21 in call File "/home/deploy/.bundler/example/ruby/2.0.0/gems/rack-1.5.2/lib/rack/runtime.rb" line 17 in call File "/home/deploy/.bundler/example/ruby/2.0.0/gems/activesupport-4.1.0/lib/active_support/cache/strategy/local_cache_middleware.rb" line 26 in call File "/home/deploy/.bundler/example/ruby/2.0.0/gems/rack-1.5.2/lib/rack/sendfile.rb" line 112 in call File "/home/deploy/.bundler/example/ruby/2.0.0/gems/railties-4.1.0/lib/rails/engine.rb" line 514 in call File "/home/deploy/.bundler/example/ruby/2.0.0/gems/railties-4.1.0/lib/rails/application.rb" line 144 in call File "/home/deploy/.bundler/example/ruby/2.0.0/gems/unicorn-4.8.2/lib/unicorn/http_server.rb" line 572 in process_client File "/home/deploy/.bundler/example/ruby/2.0.0/gems/unicorn-4.8.2/lib/unicorn/http_server.rb" line 666 in worker_loop File "/home/deploy/.bundler/example/ruby/2.0.0/gems/unicorn-4.8.2/lib/unicorn/http_server.rb" line 521 in spawn_missing_workers File "/home/deploy/.bundler/example/ruby/2.0.0/gems/unicorn-4.8.2/lib/unicorn/http_server.rb" line 140 in start File "/home/deploy/.bundler/example/ruby/2.0.0/gems/unicorn-4.8.2/bin/unicorn_rails" line 209 in <top (required)> File "/home/deploy/.bundler/example/ruby/2.0.0/bin/unicorn_rails" line 23 in load File "/home/deploy/.bundler/example/ruby/2.0.0/bin/unicorn_rails" line 23 in <main> 

`` ``

the controller is pretty simple

`` ``

  def create @work = current_user.works.build(permitted_params.work) if @work.save render json: @work, status: :created else render json: { status: 'error', message: @work.errors.full_messages }, status: :bad_request end end 

`` ``

raw request

`` ``

 POST /api/my/works HTTP/1.1 Host: example.com Cache-Control: no-cache Postman-Token: 98f4ce29-a72e-53e9-98e6-d08bbc4ca6f1 Content-Type: multipart/form-data; boundary=----WebKitFormBoundaryp7MA4YWxkTrZu0gW ----WebKitFormBoundaryE19zNvXGzXaLvS5C Content-Disposition: form-data; name="auth_token" 0e008b699c8904c26cba54ac54a5bb49 ----WebKitFormBoundaryE19zNvXGzXaLvS5C Content-Disposition: form-data; name="name" blah ----WebKitFormBoundaryE19zNvXGzXaLvS5C Content-Disposition: form-data; name="cover_image"; filename="IMG_1755.JPG" Content-Type: image/jpeg ----WebKitFormBoundaryE19zNvXGzXaLvS5C Content-Disposition: form-data; name="model" iPad Air ----WebKitFormBoundaryE19zNvXGzXaLvS5C Content-Disposition: form-data; name="work_type" is_public ----WebKitFormBoundaryE19zNvXGzXaLvS5C 

`` ``

environments

Rails 4.1.1 Ruby 2.0

+6
source share
2 answers

According to the Rails 4.1 release note:

Removed support for the encode_json cache used to encode user objects in JSON. This function was extracted into the activesupport-json_encoder gem. (Related Pull Request / Details)

Since activesupport no longer encodes the wrong code. Add a gemfile to activesupport-json_encoder to fix this problem.

+7
source

Just add if this can help someone who is trying to find a solution to this error, trying to write .jpg or any image files.

"wb" instead of "w" in File.open(filename,'wb') solved this problem for me.

0
source

Source: https://habr.com/ru/post/970701/


All Articles