# ActiveStorage::FileNotFoundError

ActiveStorage::FileNotFoundError

- **Location:** app/models/video.rb:110
- **Occurred at:** 2026-04-30 16:16:29 UTC

## Backtrace

### Compact Trace

```
app/models/video.rb:110:in `thumbnail_url'
app/controllers/api/v1/api_controller.rb:17:in `serializer'
app/controllers/api/v1/publications_controller.rb:103:in `my_publication_feed'
```

### Full Trace

```
/var/www/oblyk/api/shared/bundle/ruby/2.6.0/gems/activestorage-6.0.3.6/lib/active_storage/service/s3_service.rb:109:in `stream'
/var/www/oblyk/api/shared/bundle/ruby/2.6.0/gems/activestorage-6.0.3.6/lib/active_storage/service/s3_service.rb:30:in `block in download'
/var/www/oblyk/api/shared/bundle/ruby/2.6.0/gems/activesupport-6.0.3.6/lib/active_support/notifications.rb:180:in `block in instrument'
/var/www/oblyk/api/shared/bundle/ruby/2.6.0/gems/activesupport-6.0.3.6/lib/active_support/notifications/instrumenter.rb:24:in `instrument'
/var/www/oblyk/api/shared/bundle/ruby/2.6.0/gems/activesupport-6.0.3.6/lib/active_support/notifications.rb:180:in `instrument'
/var/www/oblyk/api/shared/bundle/ruby/2.6.0/gems/activestorage-6.0.3.6/lib/active_storage/service.rb:126:in `instrument'
/var/www/oblyk/api/shared/bundle/ruby/2.6.0/gems/activestorage-6.0.3.6/lib/active_storage/service/s3_service.rb:29:in `download'
/var/www/oblyk/api/shared/bundle/ruby/2.6.0/gems/activestorage-6.0.3.6/lib/active_storage/downloader.rb:32:in `download'
/var/www/oblyk/api/shared/bundle/ruby/2.6.0/gems/activestorage-6.0.3.6/lib/active_storage/downloader.rb:13:in `block in open'
/var/www/oblyk/api/shared/bundle/ruby/2.6.0/gems/activestorage-6.0.3.6/lib/active_storage/downloader.rb:24:in `open_tempfile'
/var/www/oblyk/api/shared/bundle/ruby/2.6.0/gems/activestorage-6.0.3.6/lib/active_storage/downloader.rb:12:in `open'
/var/www/oblyk/api/shared/bundle/ruby/2.6.0/gems/activestorage-6.0.3.6/lib/active_storage/service.rb:86:in `open'
/var/www/oblyk/api/shared/bundle/ruby/2.6.0/gems/activestorage-6.0.3.6/app/models/active_storage/blob.rb:219:in `open'
/var/www/oblyk/api/shared/bundle/ruby/2.6.0/gems/activestorage-6.0.3.6/lib/active_storage/previewer.rb:29:in `download_blob_to_tempfile'
/var/www/oblyk/api/shared/bundle/ruby/2.6.0/gems/activestorage-6.0.3.6/lib/active_storage/previewer/video_previewer.rb:22:in `preview'
/var/www/oblyk/api/shared/bundle/ruby/2.6.0/gems/activestorage-6.0.3.6/app/models/active_storage/preview.rb:74:in `process'
/var/www/oblyk/api/shared/bundle/ruby/2.6.0/gems/activestorage-6.0.3.6/app/models/active_storage/preview.rb:46:in `processed'
/var/www/oblyk/api/releases/20260429165115/app/models/video.rb:110:in `thumbnail_url'
/var/www/oblyk/api/shared/bundle/ruby/2.6.0/gems/jsonapi-serializer-2.2.0/lib/fast_jsonapi/scalar.rb:16:in `public_send'
/var/www/oblyk/api/shared/bundle/ruby/2.6.0/gems/jsonapi-serializer-2.2.0/lib/fast_jsonapi/scalar.rb:16:in `serialize'
/var/www/oblyk/api/shared/bundle/ruby/2.6.0/gems/jsonapi-serializer-2.2.0/lib/fast_jsonapi/serialization_core.rb:49:in `block in attributes_hash'
/var/www/oblyk/api/shared/bundle/ruby/2.6.0/gems/jsonapi-serializer-2.2.0/lib/fast_jsonapi/serialization_core.rb:48:in `each'
/var/www/oblyk/api/shared/bundle/ruby/2.6.0/gems/jsonapi-serializer-2.2.0/lib/fast_jsonapi/serialization_core.rb:48:in `each_with_object'
/var/www/oblyk/api/shared/bundle/ruby/2.6.0/gems/jsonapi-serializer-2.2.0/lib/fast_jsonapi/serialization_core.rb:48:in `attributes_hash'
/var/www/oblyk/api/shared/bundle/ruby/2.6.0/gems/jsonapi-serializer-2.2.0/lib/fast_jsonapi/serialization_core.rb:81:in `record_hash'
/var/www/oblyk/api/shared/bundle/ruby/2.6.0/gems/jsonapi-serializer-2.2.0/lib/fast_jsonapi/serialization_core.rb:195:in `block (2 levels) in get_included_records'
/var/www/oblyk/api/shared/bundle/ruby/2.6.0/gems/jsonapi-serializer-2.2.0/lib/fast_jsonapi/serialization_core.rb:181:in `each'
/var/www/oblyk/api/shared/bundle/ruby/2.6.0/gems/jsonapi-serializer-2.2.0/lib/fast_jsonapi/serialization_core.rb:181:in `block in get_included_records'
/var/www/oblyk/api/shared/bundle/ruby/2.6.0/gems/jsonapi-serializer-2.2.0/lib/fast_jsonapi/serialization_core.rb:170:in `each'
/var/www/oblyk/api/shared/bundle/ruby/2.6.0/gems/jsonapi-serializer-2.2.0/lib/fast_jsonapi/serialization_core.rb:170:in `each_with_object'
/var/www/oblyk/api/shared/bundle/ruby/2.6.0/gems/jsonapi-serializer-2.2.0/lib/fast_jsonapi/serialization_core.rb:170:in `get_included_records'
/var/www/oblyk/api/shared/bundle/ruby/2.6.0/gems/jsonapi-serializer-2.2.0/lib/fast_jsonapi/serialization_core.rb:186:in `block (2 levels) in get_included_records'
/var/www/oblyk/api/shared/bundle/ruby/2.6.0/gems/jsonapi-serializer-2.2.0/lib/fast_jsonapi/serialization_core.rb:181:in `each'
/var/www/oblyk/api/shared/bundle/ruby/2.6.0/gems/jsonapi-serializer-2.2.0/lib/fast_jsonapi/serialization_core.rb:181:in `block in get_included_records'
/var/www/oblyk/api/shared/bundle/ruby/2.6.0/gems/jsonapi-serializer-2.2.0/lib/fast_jsonapi/serialization_core.rb:170:in `each'
/var/www/oblyk/api/shared/bundle/ruby/2.6.0/gems/jsonapi-serializer-2.2.0/lib/fast_jsonapi/serialization_core.rb:170:in `each_with_object'
/var/www/oblyk/api/shared/bundle/ruby/2.6.0/gems/jsonapi-serializer-2.2.0/lib/fast_jsonapi/serialization_core.rb:170:in `get_included_records'
/var/www/oblyk/api/shared/bundle/ruby/2.6.0/gems/jsonapi-serializer-2.2.0/lib/fast_jsonapi/object_serializer.rb:65:in `block in hash_for_collection'
/var/www/oblyk/api/shared/bundle/ruby/2.6.0/gems/activerecord-6.0.3.6/lib/active_record/relation/delegation.rb:87:in `each'
/var/www/oblyk/api/shared/bundle/ruby/2.6.0/gems/activerecord-6.0.3.6/lib/active_record/relation/delegation.rb:87:in `each'
/var/www/oblyk/api/shared/bundle/ruby/2.6.0/gems/jsonapi-serializer-2.2.0/lib/fast_jsonapi/object_serializer.rb:63:in `hash_for_collection'
/var/www/oblyk/api/shared/bundle/ruby/2.6.0/gems/jsonapi-serializer-2.2.0/lib/fast_jsonapi/object_serializer.rb:38:in `serializable_hash'
/var/www/oblyk/api/releases/20260429165115/app/controllers/api/v1/api_controller.rb:17:in `serializer'
/var/www/oblyk/api/releases/20260429165115/app/controllers/api/v1/publications_controller.rb:103:in `my_publication_feed'
/var/www/oblyk/api/shared/bundle/ruby/2.6.0/gems/actionpack-6.0.3.6/lib/action_controller/metal/basic_implicit_render.rb:6:in `send_action'
/var/www/oblyk/api/shared/bundle/ruby/2.6.0/gems/actionpack-6.0.3.6/lib/abstract_controller/base.rb:195:in `process_action'
/var/www/oblyk/api/shared/bundle/ruby/2.6.0/gems/actionpack-6.0.3.6/lib/action_controller/metal/rendering.rb:30:in `process_action'
/var/www/oblyk/api/shared/bundle/ruby/2.6.0/gems/actionpack-6.0.3.6/lib/abstract_controller/callbacks.rb:42:in `block in process_action'
/var/www/oblyk/api/shared/bundle/ruby/2.6.0/gems/activesupport-6.0.3.6/lib/active_support/callbacks.rb:112:in `block in run_callbacks'
/var/www/oblyk/api/shared/bundle/ruby/2.6.0/gems/rorvswild-1.6.0/lib/rorvswild/plugin/action_controller.rb:28:in `around_action'
/var/www/oblyk/api/shared/bundle/ruby/2.6.0/gems/activesupport-6.0.3.6/lib/active_support/callbacks.rb:121:in `instance_exec'
/var/www/oblyk/api/shared/bundle/ruby/2.6.0/gems/activesupport-6.0.3.6/lib/active_support/callbacks.rb:121:in `block in run_callbacks'
/var/www/oblyk/api/shared/bundle/ruby/2.6.0/gems/activesupport-6.0.3.6/lib/active_support/callbacks.rb:139:in `run_callbacks'
/var/www/oblyk/api/shared/bundle/ruby/2.6.0/gems/actionpack-6.0.3.6/lib/abstract_controller/callbacks.rb:41:in `process_action'
/var/www/oblyk/api/shared/bundle/ruby/2.6.0/gems/actionpack-6.0.3.6/lib/action_controller/metal/rescue.rb:22:in `process_action'
/var/www/oblyk/api/shared/bundle/ruby/2.6.0/gems/actionpack-6.0.3.6/lib/action_controller/metal/instrumentation.rb:33:in `block in process_action'
/var/www/oblyk/api/shared/bundle/ruby/2.6.0/gems/activesupport-6.0.3.6/lib/active_support/notifications.rb:180:in `block in instrument'
/var/www/oblyk/api/shared/bundle/ruby/2.6.0/gems/activesupport-6.0.3.6/lib/active_support/notifications/instrumenter.rb:24:in `instrument'
/var/www/oblyk/api/shared/bundle/ruby/2.6.0/gems/activesupport-6.0.3.6/lib/active_support/notifications.rb:180:in `instrument'
/var/www/oblyk/api/shared/bundle/ruby/2.6.0/gems/actionpack-6.0.3.6/lib/action_controller/metal/instrumentation.rb:32:in `process_action'
/var/www/oblyk/api/shared/bundle/ruby/2.6.0/gems/actionpack-6.0.3.6/lib/action_controller/metal/params_wrapper.rb:245:in `process_action'
/var/www/oblyk/api/shared/bundle/ruby/2.6.0/gems/activerecord-6.0.3.6/lib/active_record/railties/controller_runtime.rb:27:in `process_action'
/var/www/oblyk/api/shared/bundle/ruby/2.6.0/gems/actionpack-6.0.3.6/lib/abstract_controller/base.rb:136:in `process'
/var/www/oblyk/api/shared/bundle/ruby/2.6.0/gems/actionpack-6.0.3.6/lib/action_controller/metal.rb:190:in `dispatch'
/var/www/oblyk/api/shared/bundle/ruby/2.6.0/gems/actionpack-6.0.3.6/lib/action_controller/metal.rb:254:in `dispatch'
/var/www/oblyk/api/shared/bundle/ruby/2.6.0/gems/actionpack-6.0.3.6/lib/action_dispatch/routing/route_set.rb:50:in `dispatch'
/var/www/oblyk/api/shared/bundle/ruby/2.6.0/gems/actionpack-6.0.3.6/lib/action_dispatch/routing/route_set.rb:33:in `serve'
/var/www/oblyk/api/shared/bundle/ruby/2.6.0/gems/actionpack-6.0.3.6/lib/action_dispatch/journey/router.rb:49:in `block in serve'
/var/www/oblyk/api/shared/bundle/ruby/2.6.0/gems/actionpack-6.0.3.6/lib/action_dispatch/journey/router.rb:32:in `each'
/var/www/oblyk/api/shared/bundle/ruby/2.6.0/gems/actionpack-6.0.3.6/lib/action_dispatch/journey/router.rb:32:in `serve'
/var/www/oblyk/api/shared/bundle/ruby/2.6.0/gems/actionpack-6.0.3.6/lib/action_dispatch/routing/route_set.rb:834:in `call'
/var/www/oblyk/api/shared/bundle/ruby/2.6.0/gems/rack-2.2.3/lib/rack/session/abstract/id.rb:266:in `context'
/var/www/oblyk/api/shared/bundle/ruby/2.6.0/gems/rack-2.2.3/lib/rack/session/abstract/id.rb:260:in `call'
/var/www/oblyk/api/shared/bundle/ruby/2.6.0/gems/actionpack-6.0.3.6/lib/action_dispatch/middleware/cookies.rb:648:in `call'
/var/www/oblyk/api/shared/bundle/ruby/2.6.0/gems/rack-2.2.3/lib/rack/etag.rb:27:in `call'
/var/www/oblyk/api/shared/bundle/ruby/2.6.0/gems/rack-2.2.3/lib/rack/conditional_get.rb:27:in `call'
/var/www/oblyk/api/shared/bundle/ruby/2.6.0/gems/rack-2.2.3/lib/rack/head.rb:12:in `call'
/var/www/oblyk/api/shared/bundle/ruby/2.6.0/gems/actionpack-6.0.3.6/lib/action_dispatch/middleware/callbacks.rb:27:in `block in call'
/var/www/oblyk/api/shared/bundle/ruby/2.6.0/gems/activesupport-6.0.3.6/lib/active_support/callbacks.rb:101:in `run_callbacks'
/var/www/oblyk/api/shared/bundle/ruby/2.6.0/gems/actionpack-6.0.3.6/lib/action_dispatch/middleware/callbacks.rb:26:in `call'
/var/www/oblyk/api/shared/bundle/ruby/2.6.0/gems/actionpack-6.0.3.6/lib/action_dispatch/middleware/actionable_exceptions.rb:18:in `call'
/var/www/oblyk/api/shared/bundle/ruby/2.6.0/gems/actionpack-6.0.3.6/lib/action_dispatch/middleware/debug_exceptions.rb:32:in `call'
/var/www/oblyk/api/shared/bundle/ruby/2.6.0/gems/actionpack-6.0.3.6/lib/action_dispatch/middleware/show_exceptions.rb:33:in `call'
/var/www/oblyk/api/shared/bundle/ruby/2.6.0/gems/railties-6.0.3.6/lib/rails/rack/logger.rb:37:in `call_app'
/var/www/oblyk/api/shared/bundle/ruby/2.6.0/gems/railties-6.0.3.6/lib/rails/rack/logger.rb:26:in `block in call'
/var/www/oblyk/api/shared/bundle/ruby/2.6.0/gems/activesupport-6.0.3.6/lib/active_support/tagged_logging.rb:80:in `block in tagged'
/var/www/oblyk/api/shared/bundle/ruby/2.6.0/gems/activesupport-6.0.3.6/lib/active_support/tagged_logging.rb:28:in `tagged'
/var/www/oblyk/api/shared/bundle/ruby/2.6.0/gems/activesupport-6.0.3.6/lib/active_support/tagged_logging.rb:80:in `tagged'
/var/www/oblyk/api/shared/bundle/ruby/2.6.0/gems/railties-6.0.3.6/lib/rails/rack/logger.rb:26:in `call'
/var/www/oblyk/api/shared/bundle/ruby/2.6.0/gems/actionpack-6.0.3.6/lib/action_dispatch/middleware/remote_ip.rb:81:in `call'
/var/www/oblyk/api/shared/bundle/ruby/2.6.0/gems/request_store-1.5.0/lib/request_store/middleware.rb:19:in `call'
/var/www/oblyk/api/shared/bundle/ruby/2.6.0/gems/actionpack-6.0.3.6/lib/action_dispatch/middleware/request_id.rb:27:in `call'
/var/www/oblyk/api/shared/bundle/ruby/2.6.0/gems/rack-2.2.3/lib/rack/runtime.rb:22:in `call'
/var/www/oblyk/api/shared/bundle/ruby/2.6.0/gems/activesupport-6.0.3.6/lib/active_support/cache/strategy/local_cache_middleware.rb:29:in `call'
/var/www/oblyk/api/shared/bundle/ruby/2.6.0/gems/actionpack-6.0.3.6/lib/action_dispatch/middleware/executor.rb:14:in `call'
/var/www/oblyk/api/shared/bundle/ruby/2.6.0/gems/rack-2.2.3/lib/rack/sendfile.rb:110:in `call'
/var/www/oblyk/api/shared/bundle/ruby/2.6.0/gems/actionpack-6.0.3.6/lib/action_dispatch/middleware/ssl.rb:74:in `call'
/var/www/oblyk/api/shared/bundle/ruby/2.6.0/gems/actionpack-6.0.3.6/lib/action_dispatch/middleware/host_authorization.rb:76:in `call'
/var/www/oblyk/api/shared/bundle/ruby/2.6.0/gems/rack-cors-1.1.1/lib/rack/cors.rb:100:in `call'
/var/www/oblyk/api/shared/bundle/ruby/2.6.0/gems/rorvswild-1.6.0/lib/rorvswild/plugin/middleware.rb:20:in `call'
/var/www/oblyk/api/shared/bundle/ruby/2.6.0/gems/railties-6.0.3.6/lib/rails/engine.rb:527:in `call'
/var/www/oblyk/api/shared/bundle/ruby/2.6.0/gems/puma-4.3.7/lib/puma/configuration.rb:228:in `call'
/var/www/oblyk/api/shared/bundle/ruby/2.6.0/gems/puma-4.3.7/lib/puma/server.rb:713:in `handle_request'
/var/www/oblyk/api/shared/bundle/ruby/2.6.0/gems/puma-4.3.7/lib/puma/server.rb:472:in `process_client'
/var/www/oblyk/api/shared/bundle/ruby/2.6.0/gems/puma-4.3.7/lib/puma/server.rb:328:in `block in run'
/var/www/oblyk/api/shared/bundle/ruby/2.6.0/gems/puma-4.3.7/lib/puma/thread_pool.rb:134:in `block in spawn_thread'
```

## Request

- **Name:** Api::V1::PublicationsController#my_publication_feed
- **Method:** GET
- **URL:** https://api.oblyk.org/api/v1/publications/my_publication_feed.json?page=1&per_page=5
- **Browser:** Safari 18

## Parameters

```json
{
  "page": "1",
  "action": "my_publication_feed",
  "format": "json",
  "per_page": "5",
  "controller": "api/v1/publications"
}
```

## Headers

| Header | Value |
|--------|-------|
| Host | api.oblyk.org |
| Accept | application/json, text/plain, */* |
| Cf-Ray | 9f47d9df2e2f406b-MRS |
| Origin | https://oblyk.org |
| Referer | https://oblyk.org/ |
| Version | HTTP/1.0 |
| Cdn-Loop | cloudflare; loops=1 |
| Cf-Visitor | {"scheme":"https"} |
| Connection | close |
| User-Agent | Mozilla/5.0 (iPhone; CPU iPhone OS 18_6_2 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/18.6.2 Mobile/15E148 Safari/604.1 PWAShell |
| Cf-Ipcountry | FR |
| Authorization | [FILTERED] |
| Sec-Fetch-Dest | empty |
| Sec-Fetch-Mode | cors |
| Sec-Fetch-Site | same-site |
| Accept-Encoding | gzip, br |
| Accept-Language | fr-FR,fr;q=0.9 |
| X-Forwarded-For | 2001:861:3107:6360:590b:b292:3eff:97d1, 162.159.122.162 |
| Cf-Connecting-Ip | 2001:861:3107:6360:590b:b292:3eff:97d1 |
| X-Forwarded-Proto | https |
| Httpapiaccesstoken | [FILTERED] |

## Environment

| Variable | Value |
|----------|-------|
| os | Linux 5.10.0-14-cloud-amd64 |
| cwd | /var/www/oblyk/api/releases/20260429165115 |
| pid | 3483313 |
| host | oblyk-api |
| ruby | ruby 2.6.5p114 (2019-10-01 revision 67812) [x86_64-linux] |
| user | oblyk |
| rails | 6.0.3.6 |
| revision | eb9561400ef42ca61271ea8c114e690a4003b8f2
 |


[View on RoRvsWild ↗](https://www.rorvswild.com/applications/135627/errors/87332031)