Skip to content

Handle files without filename extension as txt #5437

@Grecco-O

Description

@Grecco-O

I don't know if it's more a bug or a feature request.
If you try to upload a zip with a file which has no filename extension the upload succeeds but if you try to open the model manyfold returns with a 500 error.
In my case it was the License file in the zip of https://www.extrabold.tools/

It's easily user-fixable, just add a .txt at the problematic file.

But maybe letting manyfold flag it as a text file would also be good.
Thingiverse for example doesn't have this problem because they give you the file with the correct extension.

Log:

16:33:54 rails.1              | [fc25bd24-646f-451d-995d-8aae06b5daf8] {"method":"GET","path":"/models/5xrf535tw7rl","format":"html","controller":"ModelsController","action":"show","status":500,"allocations":111140,"duration":321.3,"view":0.0,"db":64.92,"@timestamp":"2026-02-04T15:33:54.055Z","@version":"1","message":"[500] GET /models/5xrf535tw7rl (ModelsController#show)"}
16:33:54 rails.1              | [fc25bd24-646f-451d-995d-8aae06b5daf8]   
16:33:54 rails.1              | [fc25bd24-646f-451d-995d-8aae06b5daf8] ActionView::Template::Error (undefined method 'to_sym' for nil)
16:33:54 rails.1              | [fc25bd24-646f-451d-995d-8aae06b5daf8] Caused by: NoMethodError (undefined method 'to_sym' for nil)
16:33:54 rails.1              | [fc25bd24-646f-451d-995d-8aae06b5daf8] 
16:33:54 rails.1              | Information for: ActionView::Template::Error (undefined method 'to_sym' for nil):
16:33:54 rails.1              | [fc25bd24-646f-451d-995d-8aae06b5daf8]     53:         <div class="col col-auto">
16:33:54 rails.1              | [fc25bd24-646f-451d-995d-8aae06b5daf8]     54:           <div class="float-end">
16:33:54 rails.1              | [fc25bd24-646f-451d-995d-8aae06b5daf8]     55:             <%= BurgerMenu(direction: :up) do %>
16:33:54 rails.1              | [fc25bd24-646f-451d-995d-8aae06b5daf8]     56:               <%= app_links(file) %>
16:33:54 rails.1              | [fc25bd24-646f-451d-995d-8aae06b5daf8]     57:               <%= DropdownDivider() %>
16:33:54 rails.1              | [fc25bd24-646f-451d-995d-8aae06b5daf8]     58:               <% if file.presupported_version %>
16:33:54 rails.1              | [fc25bd24-646f-451d-995d-8aae06b5daf8]     59:                 <%= DropdownHeader text: t(".presupported") %>
16:33:54 rails.1              | [fc25bd24-646f-451d-995d-8aae06b5daf8]   
16:33:54 rails.1              | [fc25bd24-646f-451d-995d-8aae06b5daf8] app/helpers/model_files_helper.rb:33:in 'block in ModelFilesHelper#app_links'
16:33:54 rails.1              | [fc25bd24-646f-451d-995d-8aae06b5daf8] app/helpers/model_files_helper.rb:33:in 'Hash#each'
16:33:54 rails.1              | [fc25bd24-646f-451d-995d-8aae06b5daf8] app/helpers/model_files_helper.rb:33:in 'Enumerable#filter_map'
16:33:54 rails.1              | [fc25bd24-646f-451d-995d-8aae06b5daf8] app/helpers/model_files_helper.rb:33:in 'ModelFilesHelper#app_links'
16:33:54 rails.1              | [fc25bd24-646f-451d-995d-8aae06b5daf8] app/views/models/_file.html.erb:56
16:33:54 rails.1              | [fc25bd24-646f-451d-995d-8aae06b5daf8] app/components/burger_menu.rb:33:in 'block (2 levels) in Components::BurgerMenu#view_template'
16:33:54 rails.1              | [fc25bd24-646f-451d-995d-8aae06b5daf8] app/components/burger_menu.rb:29:in 'block in Components::BurgerMenu#view_template'
16:33:54 rails.1              | [fc25bd24-646f-451d-995d-8aae06b5daf8] app/components/burger_menu.rb:14:in 'Components::BurgerMenu#view_template'
16:33:54 rails.1              | [fc25bd24-646f-451d-995d-8aae06b5daf8] app/helpers/components_helper.rb:7:in 'block (2 levels) in <module:ComponentsHelper>'
16:33:54 rails.1              | [fc25bd24-646f-451d-995d-8aae06b5daf8] app/views/models/_file.html.erb:55
16:33:54 rails.1              | [fc25bd24-646f-451d-995d-8aae06b5daf8] app/views/models/show.html.erb:38
16:33:54 rails.1              | [fc25bd24-646f-451d-995d-8aae06b5daf8] app/controllers/application_controller.rb:118:in 'ApplicationController#switch_locale'
16:33:54 rails.1              | [fc25bd24-646f-451d-995d-8aae06b5daf8] 
16:33:54 rails.1              | Information for cause: NoMethodError (undefined method 'to_sym' for nil):
16:33:54 rails.1              | [fc25bd24-646f-451d-995d-8aae06b5daf8]   
16:33:54 rails.1              | [fc25bd24-646f-451d-995d-8aae06b5daf8] app/helpers/model_files_helper.rb:33:in 'block in ModelFilesHelper#app_links'
16:33:54 rails.1              | [fc25bd24-646f-451d-995d-8aae06b5daf8] app/helpers/model_files_helper.rb:33:in 'Hash#each'
16:33:54 rails.1              | [fc25bd24-646f-451d-995d-8aae06b5daf8] app/helpers/model_files_helper.rb:33:in 'Enumerable#filter_map'
16:33:54 rails.1              | [fc25bd24-646f-451d-995d-8aae06b5daf8] app/helpers/model_files_helper.rb:33:in 'ModelFilesHelper#app_links'
16:33:54 rails.1              | [fc25bd24-646f-451d-995d-8aae06b5daf8] app/views/models/_file.html.erb:56
16:33:54 rails.1              | [fc25bd24-646f-451d-995d-8aae06b5daf8] app/components/burger_menu.rb:33:in 'block (2 levels) in Components::BurgerMenu#view_template'
16:33:54 rails.1              | [fc25bd24-646f-451d-995d-8aae06b5daf8] app/components/burger_menu.rb:29:in 'block in Components::BurgerMenu#view_template'
16:33:54 rails.1              | [fc25bd24-646f-451d-995d-8aae06b5daf8] app/components/burger_menu.rb:14:in 'Components::BurgerMenu#view_template'
16:33:54 rails.1              | [fc25bd24-646f-451d-995d-8aae06b5daf8] app/helpers/components_helper.rb:7:in 'block (2 levels) in <module:ComponentsHelper>'
16:33:54 rails.1              | [fc25bd24-646f-451d-995d-8aae06b5daf8] app/views/models/_file.html.erb:55
16:33:54 rails.1              | [fc25bd24-646f-451d-995d-8aae06b5daf8] app/views/models/show.html.erb:38
16:33:54 rails.1              | [fc25bd24-646f-451d-995d-8aae06b5daf8] app/controllers/application_controller.rb:118:in 'ApplicationController#switch_locale'

Metadata

Metadata

Assignees

No one assigned

    Labels

    bugSomething isn't working

    Type

    No type

    Projects

    Status

    Maybe

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions