# Oblyk API – Weekly Report: Apr 27 → May 04

## Requests (1,309,618)

- **95P:** 132.6 ms
- **Throughput:** 129.92 /min
- **Errors:** 0.05284%

| Name | 95P ms | Throughput /min | Impact |
| ---- | -----: | --------------: | -----: |
| Api::V1::PartnersController#partners_around | 585 | 3.62 | 15.0% |
| Api::V1::CragsController#geo_json | 1497 | 1.42 | 12.1% |
| Api::V1::CragsController#show | 139 | 14.73 | 7.1% |
| Api::V1::TownsController#geo_json | 376 | 1.81 | 5.1% |
| Api::V1::PublicationsController#my_publication_feed | 462 | 1.45 | 4.3% |
| Api::V1::CommonsController#figures | 3660 | 0.12 | 4.0% |
| Api::V1::GymRoutesController#paginated | 192 | 3.36 | 3.6% |
| Api::V1::CurrentUsersController#suggested_friends | 1437 | 0.26 | 2.9% |
| Api::V1::GymsController#ascent_scores | 1375 | 0.22 | 2.4% |
| Api::V1::CragRoutesController#index | 128 | 3.59 | 2.3% |
| Api::V1::GymsController#show | 110 | 2.79 | 1.9% |
| Api::V1::TownsController#show | 51 | 14.49 | 1.9% |
| Api::V1::CurrentUsersController#show | 89 | 2.78 | 1.5% |
| ActiveStorage::RepresentationsController#show | 176 | 0.89 | 1.2% |
| Api::V1::GuideBookPapersController#crags_figures | 255 | 0.75 | 1.2% |
| Api::V1::GymSectorsController#show | 51 | 6.15 | 1.2% |
| Api::V1::CragsController#index | 264 | 0.58 | 1.0% |
| Api::V1::PublicationViewsController#my_unread_count | 135 | 1.3 | 1.0% |

## Jobs (5,801)

- **95P:** 844.3 ms
- **Throughput:** 0.58 /min
- **Errors:** 0.18962%

| Name | 95P ms | Throughput /min | Impact |
| ---- | -----: | --------------: | -----: |
| HistorizeTownWorker | 946 | 0.33 | 59.1% |
| ActiveStorage::AnalyzeJob | 1060 | 0.11 | 25.7% |
| HistorizeTownsAroundWorker | 1679 | 0.02 | 7.6% |
| ActionMailer::MailDeliveryJob | 223 | 0.09 | 3.3% |
| HistorizeCragStaticMapWorker | 2731 | 0.0 | 1.3% |
| EmailNotificationWorker | 158 | 0.02 | 1.1% |

## Errors (703)
| Exception | Message | Location | Count | Last |
| --------- | ------- | -------- | ----: | ---- |
| **NoMethodError** | undefined method `+&#39; for nil:NilClass | app/models/contest_service/ranker.rb:122 | 395 | 29 Apr 16:39 |
| **NoMethodError** | undefined method `level_color&#39; for nil:NilClass | app/controllers/api/v1/climbing_sessions_controller.rb:111 | 155 | 03 May 23:37 |
| **NoMethodError** | undefined method `first&#39; for nil:NilClass | app/models/color.rb:7 | 59 | 03 May 19:52 |
| **NoMethodError** | undefined method `summary_to_json&#39; for nil:NilClass | app/models/follow.rb:52 | 19 | 03 May 20:47 |
| **NoMethodError** | undefined method `+&#39; for nil:NilClass | app/controllers/api/v1/gyms_controller.rb:173 | 14 | 02 May 20:09 |
| **NoMethodError** | undefined method `summary_to_json&#39; for nil:NilClass | app/models/crag_sector.rb:121 | 11 | 03 May 03:20 |
| **MiniMagick::Error** | `identify -format %[orientation] /tmp/ActiveStorage-134068-20260501-3454472-z2eg0l.jpg[0]` failed... | /gems/mini_magick-4.11.0/lib/mini_magick/shell.rb:17 | 11 | 01 May 19:21 |
| **NoMethodError** | undefined method `public_profile&#39; for nil:NilClass | app/controllers/api/v1/users_controller.rb:107 | 8 | 03 May 08:02 |
| **NoMethodError** | undefined method `to_sym&#39; for nil:NilClass | app/controllers/api/v1/gyms_controller.rb:171 | 8 | 02 May 13:26 |
| **TypeError** | no implicit conversion of Symbol into Integer | app/controllers/api/v1/ascent_gym_routes_controller.rb:207 | 7 | 01 May 17:17 |
| **NoMethodError** | undefined method `boulder_ranking&#39; for nil:NilClass | app/models/gym_route.rb:61 | 5 | 29 Apr 22:26 |
| **NoMethodError** | undefined method `user_id&#39; for nil:NilClass | app/controllers/api/v1/follows_controller.rb:92 | 5 | 01 May 20:04 |
| **ActiveSupport::MessageVerifier::InvalidSignature** | ActiveSupport::MessageVerifier::InvalidSignature | app/controllers/api/v1/guide_book_pdfs_controller.rb:22 | 2 | 03 May 10:23 |
| **ActiveRecord::RecordNotUnique** | Mysql2::Error: Duplicate entry &#39;30473-20580&#39; for key &#39;publication_views.index_publication_views_o... | app/models/publication_views_mapper.rb:57 | 1 | 28 Apr 08:21 |
| **ActiveStorage::FileNotFoundError** | ActiveStorage::FileNotFoundError | app/models/video.rb:110 | 1 | 30 Apr 16:16 |
| **BCrypt::Errors::InvalidHash** | invalid hash | app/controllers/api/v1/sessions/signin_controller.rb:11 | 1 | 02 May 11:42 |
| **TypeError** | nil can&#39;t be coerced into Integer | app/models/contest_service/ranker.rb:204 | 1 | 29 Apr 16:48 |

## Deployments (2)
| Revision | Date | Req 95P ms | Req /min | Req Errors | Job 95P ms | Job /min | Job Errors |
| -------- | ---- | ---------: | -------: | ---------: | ---------: | -------: | ---------: |
| Correction calcul des points quand il n&#39;y a pas de prise coché | 29 Apr 16:48 | 149.2 | 120.77 | 0.49261% | 969.0 | 0.3 | 0.00000% |
| Même correctif quand précédement mais dans le détail des points | 29 Apr 16:51 | 127.9 | 129.92 | 0.02841% | 811.2 | 0.55 | 0.10201% |

[View on RoRvsWild ↗](https://www.rorvswild.com/applications/135627/reports/2026-04-27..2026-05-04)
