iOS clients dont send and receive files

Problem Description
I am installed Freedombox i386 stable branch. I can’t share files to or from iOS clients.

Steps to Reproduce

  1. Android clients work as expected, send and receive files flawlessly.
  2. iOS clients, that installed Chatsecure send and receive messages but not files.

Expected Results
I expected to atttachments sending and receiving on iOS clients.

Actual results
I get an error with the following message:

file sending failed.

Screenshot
(a screenshot of the screen/webpage when the problem was shown)

Information

I’ve tried uncomment

- port: 5443
  ip: "::"
  module: ejabberd_http
  request_handlers:
    "/api": mod_http_api    - port: 5443
  ip: "::"
  module: ejabberd_http
  request_handlers:
    "/api": mod_http_api
    "/bosh": mod_bosh
       "/upload": mod_http_upload
    "/ws": ejabberd_http_ws
    ## captcha: true
    ## register: true
  tls: false
  protocol_options: 'TLS_OPTIONS'
  web_admin: true
    "/bosh": mod_bosh
       "/upload": mod_http_upload
    "/ws": ejabberd_http_ws
    ## captcha: true
    ## register: true
  tls: false
  protocol_options: 'TLS_OPTIONS'
  web_admin: true

and

  mod_http_api: {}
   mod_http_upload:
     put_url: "https://@HOST@:5443/upload"

related lines in ejabberd.yml

restart ejabberd but not works.

Are there some people able to share files across iOS client and how?

Thanks.

Hello,
This is my error log related to XEP-0363 activation…

-- Logs begin at Tue 2020-03-03 19:59:35 UTC, end at Wed 2020-03-04 12:20:01 UTC. --
Mar 04 01:00:31 freedombox sudo[3007]: pam_unix(sudo:session): session closed for user root
Mar 04 02:00:30 freedombox /usr/bin/plinth[421]: # storage usage-info
Mar 04 02:00:30 freedombox sudo[3192]:   plinth : TTY=unknown ; PWD=/ ; USER=root ; COMMAND=/usr/share/plinth/actions/storage usage-info
Mar 04 02:00:30 freedombox sudo[3192]: pam_unix(sudo:session): session opened for user root by (uid=0)
Mar 04 02:00:31 freedombox sudo[3192]: pam_unix(sudo:session): session closed for user root
Mar 04 03:00:30 freedombox /usr/bin/plinth[421]: # storage usage-info
Mar 04 03:00:30 freedombox sudo[3367]:   plinth : TTY=unknown ; PWD=/ ; USER=root ; COMMAND=/usr/share/plinth/actions/storage usage-info
Mar 04 03:00:30 freedombox sudo[3367]: pam_unix(sudo:session): session opened for user root by (uid=0)
Mar 04 03:00:31 freedombox sudo[3367]: pam_unix(sudo:session): session closed for user root
Mar 04 04:00:30 freedombox /usr/bin/plinth[421]: # storage usage-info
Mar 04 04:00:30 freedombox sudo[3650]:   plinth : TTY=unknown ; PWD=/ ; USER=root ; COMMAND=/usr/share/plinth/actions/storage usage-info
Mar 04 04:00:30 freedombox sudo[3650]: pam_unix(sudo:session): session opened for user root by (uid=0)
Mar 04 04:00:31 freedombox sudo[3650]: pam_unix(sudo:session): session closed for user root
Mar 04 05:00:31 freedombox /usr/bin/plinth[421]: # storage usage-info
Mar 04 05:00:31 freedombox sudo[4018]:   plinth : TTY=unknown ; PWD=/ ; USER=root ; COMMAND=/usr/share/plinth/actions/storage usage-info
Mar 04 05:00:31 freedombox sudo[4018]: pam_unix(sudo:session): session opened for user root by (uid=0)
Mar 04 05:00:31 freedombox sudo[4018]: pam_unix(sudo:session): session closed for user root
Mar 04 06:00:31 freedombox /usr/bin/plinth[421]: # storage usage-info
Mar 04 06:00:31 freedombox sudo[4427]:   plinth : TTY=unknown ; PWD=/ ; USER=root ; COMMAND=/usr/share/plinth/actions/storage usage-info
Mar 04 06:00:31 freedombox sudo[4427]: pam_unix(sudo:session): session opened for user root by (uid=0)
Mar 04 06:00:31 freedombox sudo[4427]: pam_unix(sudo:session): session closed for user root
Mar 04 07:00:31 freedombox /usr/bin/plinth[421]: # storage usage-info
Mar 04 07:00:31 freedombox sudo[4906]:   plinth : TTY=unknown ; PWD=/ ; USER=root ; COMMAND=/usr/share/plinth/actions/storage usage-info
Mar 04 07:00:31 freedombox sudo[4906]: pam_unix(sudo:session): session opened for user root by (uid=0)
Mar 04 07:00:31 freedombox sudo[4906]: pam_unix(sudo:session): session closed for user root
Mar 04 08:00:31 freedombox /usr/bin/plinth[421]: # storage usage-info
Mar 04 08:00:31 freedombox sudo[5177]:   plinth : TTY=unknown ; PWD=/ ; USER=root ; COMMAND=/usr/share/plinth/actions/storage usage-info
Mar 04 08:00:31 freedombox sudo[5177]: pam_unix(sudo:session): session opened for user root by (uid=0)
Mar 04 08:00:31 freedombox sudo[5177]: pam_unix(sudo:session): session closed for user root
Mar 04 09:00:31 freedombox /usr/bin/plinth[421]: # storage usage-info
Mar 04 09:00:31 freedombox sudo[5366]:   plinth : TTY=unknown ; PWD=/ ; USER=root ; COMMAND=/usr/share/plinth/actions/storage usage-info
Mar 04 09:00:31 freedombox sudo[5366]: pam_unix(sudo:session): session opened for user root by (uid=0)
Mar 04 09:00:31 freedombox sudo[5366]: pam_unix(sudo:session): session closed for user root
Mar 04 10:00:31 freedombox /usr/bin/plinth[421]: # storage usage-info
Mar 04 10:00:31 freedombox sudo[5546]:   plinth : TTY=unknown ; PWD=/ ; USER=root ; COMMAND=/usr/share/plinth/actions/storage usage-info
Mar 04 10:00:31 freedombox sudo[5546]: pam_unix(sudo:session): session opened for user root by (uid=0)
Mar 04 10:00:32 freedombox sudo[5546]: pam_unix(sudo:session): session closed for user root
Mar 04 10:58:39 freedombox /usr/bin/plinth[421]: AXES: Successful login by {user: 'user', ip: '46.106.73.228', user-agent: 'Mozilla/5.0 (Android 10; Mobile; rv:73.0) Gecko/73.0 Firefox/73.0', path: '/accounts/login/'}.
Mar 04 10:58:39 freedombox /usr/bin/plinth[421]: # auth-pubtkt generate-ticket --uid user --private-key-file /etc/apache2/auth-pubtkt-keys/privkey.pem --tokens admin
Mar 04 10:58:39 freedombox sudo[5755]:   plinth : TTY=unknown ; PWD=/ ; USER=root ; COMMAND=/usr/share/plinth/actions/auth-pubtkt generate-ticket --uid user --private-key-file /etc/apache2/auth-pubtkt-keys/privkey.pem --tokens admin
Mar 04 10:58:39 freedombox sudo[5755]: pam_unix(sudo:session): session opened for user root by (uid=0)
Mar 04 10:58:41 freedombox sudo[5755]: pam_unix(sudo:session): session closed for user root
Mar 04 10:58:41 freedombox /usr/bin/plinth[421]: # users get-user-groups user
Mar 04 10:58:41 freedombox sudo[5759]:   plinth : TTY=unknown ; PWD=/ ; USER=root ; COMMAND=/usr/share/plinth/actions/users get-user-groups user
Mar 04 10:58:41 freedombox sudo[5759]: pam_unix(sudo:session): session opened for user root by (uid=0)
Mar 04 10:58:42 freedombox ldapsearch[5801]: DIGEST-MD5 common mech free
Mar 04 10:58:42 freedombox ldapsearch[5807]: DIGEST-MD5 common mech free
Mar 04 10:58:42 freedombox ldapsearch[5817]: DIGEST-MD5 common mech free
Mar 04 10:58:42 freedombox ldapsearch[5826]: DIGEST-MD5 common mech free
Mar 04 10:58:42 freedombox ldapsearch[5842]: DIGEST-MD5 common mech free
Mar 04 10:58:42 freedombox sudo[5759]: pam_unix(sudo:session): session closed for user root
Mar 04 11:00:31 freedombox /usr/bin/plinth[421]: # storage usage-info
Mar 04 11:00:31 freedombox sudo[5860]:   plinth : TTY=unknown ; PWD=/ ; USER=root ; COMMAND=/usr/share/plinth/actions/storage usage-info
Mar 04 11:00:31 freedombox sudo[5860]: pam_unix(sudo:session): session opened for user root by (uid=0)
Mar 04 11:00:32 freedombox sudo[5860]: pam_unix(sudo:session): session closed for user root
Mar 04 12:00:31 freedombox /usr/bin/plinth[421]: # storage usage-info
Mar 04 12:00:31 freedombox sudo[6054]:   plinth : TTY=unknown ; PWD=/ ; USER=root ; COMMAND=/usr/share/plinth/actions/storage usage-info
Mar 04 12:00:31 freedombox sudo[6054]: pam_unix(sudo:session): session opened for user root by (uid=0)
Mar 04 12:00:32 freedombox sudo[6054]: pam_unix(sudo:session): session closed for user root
Mar 04 12:14:28 freedombox /usr/bin/plinth[421]: AXES: Successful login by {user: 'user', ip: '46.106.73.228', user-agent: 'Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/79.0.3945.130 Safari/537.36', path: '/accounts/login/'}.
Mar 04 12:14:28 freedombox /usr/bin/plinth[421]: # auth-pubtkt generate-ticket --uid user --private-key-file /etc/apache2/auth-pubtkt-keys/privkey.pem --tokens admin
Mar 04 12:14:28 freedombox sudo[6140]:   plinth : TTY=unknown ; PWD=/ ; USER=root ; COMMAND=/usr/share/plinth/actions/auth-pubtkt generate-ticket --uid user --private-key-file /etc/apache2/auth-pubtkt-keys/privkey.pem --tokens admin
Mar 04 12:14:28 freedombox sudo[6140]: pam_unix(sudo:session): session opened for user root by (uid=0)
Mar 04 12:14:29 freedombox sudo[6140]: pam_unix(sudo:session): session closed for user root
Mar 04 12:14:31 freedombox /usr/bin/plinth[421]: # users get-user-groups user
Mar 04 12:14:31 freedombox sudo[6144]:   plinth : TTY=unknown ; PWD=/ ; USER=root ; COMMAND=/usr/share/plinth/actions/users get-user-groups user
Mar 04 12:14:31 freedombox sudo[6144]: pam_unix(sudo:session): session opened for user root by (uid=0)
Mar 04 12:14:31 freedombox ldapsearch[6186]: DIGEST-MD5 common mech free
Mar 04 12:14:31 freedombox ldapsearch[6192]: DIGEST-MD5 common mech free
Mar 04 12:14:31 freedombox ldapsearch[6201]: DIGEST-MD5 common mech free
Mar 04 12:14:31 freedombox ldapsearch[6211]: DIGEST-MD5 common mech free
Mar 04 12:14:31 freedombox ldapsearch[6228]: DIGEST-MD5 common mech free
Mar 04 12:14:31 freedombox sudo[6144]: pam_unix(sudo:session): session closed for user root
Mar 04 12:19:46 freedombox /usr/bin/plinth[421]: # users get-user-groups user
Mar 04 12:19:46 freedombox sudo[6318]:   plinth : TTY=unknown ; PWD=/ ; USER=root ; COMMAND=/usr/share/plinth/actions/users get-user-groups user
Mar 04 12:19:46 freedombox sudo[6318]: pam_unix(sudo:session): session opened for user root by user(uid=0)
Mar 04 12:19:47 freedombox ldapsearch[6361]: DIGEST-MD5 common mech free
Mar 04 12:19:47 freedombox ldapsearch[6366]: DIGEST-MD5 common mech free
Mar 04 12:19:47 freedombox ldapsearch[6376]: DIGEST-MD5 common mech free
Mar 04 12:19:47 freedombox ldapsearch[6385]: DIGEST-MD5 common mech free
Mar 04 12:19:47 freedombox ldapsearch[6402]: DIGEST-MD5 common mech free
Mar 04 12:19:47 freedombox sudo[6318]: pam_unix(sudo:session): session closed for user root
Mar 04 12:19:50 freedombox /usr/bin/plinth[421]: # users get-user-groups user
Mar 04 12:19:50 freedombox sudo[6409]:   plinth : TTY=unknown ; PWD=/ ; USER=root ; COMMAND=/usr/share/plinth/actions/users get-user-groups user
Mar 04 12:19:50 freedombox sudo[6409]: pam_unix(sudo:session): session opened for user root by user(uid=0)
Mar 04 12:19:50 freedombox ldapsearch[6450]: DIGEST-MD5 common mech free
Mar 04 12:19:50 freedombox ldapsearch[6457]: DIGEST-MD5 common mech free
Mar 04 12:19:50 freedombox ldapsearch[6467]: DIGEST-MD5 common mech free
Mar 04 12:19:50 freedombox ldapsearch[6476]: DIGEST-MD5 common mech free
Mar 04 12:19:50 freedombox ldapsearch[6492]: DIGEST-MD5 common mech free
Mar 04 12:19:50 freedombox sudo[6409]: pam_unix(sudo:session): session closed for user root
Mar 04 12:19:54 freedombox /usr/bin/plinth[421]: # ejabberd mam status
Mar 04 12:19:54 freedombox sudo[6506]:   plinth : TTY=unknown ; PWD=/ ; USER=root ; COMMAND=/usr/share/plinth/actions/ejabberd mam status
Mar 04 12:19:54 freedombox sudo[6506]: pam_unix(sudo:session): session opened for user root by user(uid=0)
Mar 04 12:19:55 freedombox sudo[6506]: pam_unix(sudo:session): session closed for user root
Mar 04 12:19:55 freedombox /usr/bin/plinth[421]: Error executing command - ['sudo', '-n', '/usr/share/plinth/actions/ejabberd', 'mam', 'status'], , Traceback (most recent call last):
                                                   File "/usr/share/plinth/actions/ejabberd", line 312, in <module>
                                                     main()
                                                   File "/usr/share/plinth/actions/ejabberd", line 308, in main
                                                     subcommand_method(arguments)
                                                   File "/usr/share/plinth/actions/ejabberd", line 243, in subcommand_mam
                                                     conf = ruamel.yaml.round_trip_load(file_handle, preserve_quotes=True)
                                                   File "/usr/lib/python3/dist-packages/ruamel/yaml/main.py", line 685, in round_trip_load
                                                     return load(stream, RoundTripLoader, version, preserve_quotes=preserve_quotes)
                                                   File "/usr/lib/python3/dist-packages/ruamel/yaml/main.py", line 636, in load
                                                     return loader._constructor.get_single_data()  # type: ignore
                                                   File "/usr/lib/python3/dist-packages/ruamel/yaml/constructor.py", line 102, in get_single_data
                                                     node = self.composer.get_single_node()
                                                   File "/usr/lib/python3/dist-packages/ruamel/yaml/composer.py", line 75, in get_single_node
                                                     document = self.compose_document()
                                                   File "/usr/lib/python3/dist-packages/ruamel/yaml/composer.py", line 96, in compose_document
                                                     node = self.compose_node(None, None)
                                                   File "/usr/lib/python3/dist-packages/ruamel/yaml/composer.py", line 132, in compose_node
                                                     node = self.compose_mapping_node(anchor)
                                                   File "/usr/lib/python3/dist-packages/ruamel/yaml/composer.py", line 194, in compose_mapping_node
                                                     item_value = self.compose_node(node, item_key)
                                                   File "/usr/lib/python3/dist-packages/ruamel/yaml/composer.py", line 132, in compose_node
                                                     node = self.compose_mapping_node(anchor)
                                                   File "/usr/lib/python3/dist-packages/ruamel/yaml/composer.py", line 187, in compose_mapping_node
                                                     while not self.parser.check_event(MappingEndEvent):
                                                   File "/usr/lib/python3/dist-packages/ruamel/yaml/parser.py", line 144, in check_event
                                                     self.current_event = self.state()
                                                   File "/usr/lib/python3/dist-packages/ruamel/yaml/parser.py", line 561, in parse_block_mapping_key
                                                     token.start_mark)
                                                 ruamel.yaml.parser.ParserError: while parsing a block mapping
                                                   in "/etc/ejabberd/ejabberd.yml", line 172, column 3
                                                 expected <block end>, but found '<block mapping start>'
                                                   in "/etc/ejabberd/ejabberd.yml", line 188, column 4
Mar 04 12:19:55 freedombox /usr/bin/plinth[421]: Internal Server Error: /plinth/apps/ejabberd/
                                                 Traceback (most recent call last):
                                                   File "/usr/lib/python3/dist-packages/django/core/handlers/exception.py", line 41, in inner
                                                     response = get_response(request)
                                                   File "/usr/lib/python3/dist-packages/django/core/handlers/base.py", line 187, in _get_response
                                                     response = self.process_exception_by_middleware(e, request)
                                                   File "/usr/lib/python3/dist-packages/django/core/handlers/base.py", line 185, in _get_response
                                                     response = wrapped_callback(request, *callback_args, **callback_kwargs)
                                                   File "/usr/lib/python3/dist-packages/django/views/generic/base.py", line 68, in view
                                                     return self.dispatch(request, *args, **kwargs)
                                                   File "/usr/lib/python3/dist-packages/django/views/generic/base.py", line 88, in dispatch
                                                     return handler(request, *args, **kwargs)
                                                   File "/usr/lib/python3/dist-packages/django/views/generic/edit.py", line 174, in get
                                                     return self.render_to_response(self.get_context_data())
                                                   File "/usr/lib/python3/dist-packages/plinth/modules/ejabberd/views.py", line 30, in get_context_data
                                                     context = super().get_context_data(*args, **kwargs)
                                                   File "/usr/lib/python3/dist-packages/plinth/views.py", line 198, in get_context_data
                                                     context = super().get_context_data(*args, **kwargs)
                                                   File "/usr/lib/python3/dist-packages/django/views/generic/edit.py", line 93, in get_context_data
                                                     kwargs['form'] = self.get_form()
                                                   File "/usr/lib/python3/dist-packages/django/views/generic/edit.py", line 45, in get_form
                                                     return form_class(**self.get_form_kwargs())
                                                   File "/usr/lib/python3/dist-packages/django/views/generic/edit.py", line 52, in get_form_kwargs
                                                     'initial': self.get_initial(),
                                                   File "/usr/lib/python3/dist-packages/plinth/modules/ejabberd/views.py", line 25, in get_initial
                                                     initdict.update({'MAM_enabled': self.is_MAM_enabled()})
                                                   File "/usr/lib/python3/dist-packages/plinth/modules/ejabberd/views.py", line 68, in is_MAM_enabled
                                                     output = actions.superuser_run('ejabberd', ['mam', 'status'])
                                                   File "/usr/lib/python3/dist-packages/plinth/actions.py", line 105, in superuser_run
                                                     log_error=log_error)
                                                   File "/usr/lib/python3/dist-packages/plinth/actions.py", line 200, in _run
                                                     raise ActionError(action, output, error)
                                                 plinth.errors.ActionError: ('ejabberd', '', 'Traceback (most recent call last):\n  File "/usr/share/plinth/actions/ejabberd", line 312, in <module>\n    main()\n  File "/usr/share/plinth/actions/ejabberd", line 308, in main\n    subcommand_method(arguments)\n  File "/usr/share/plinth/actions/ejabberd", line 243, in subcommand_mam\n    conf = ruamel.yaml.round_trip_load(file_handle, preserve_quotes=True)\n  File "/usr/lib/python3/dist-packages/ruamel/yaml/main.py", line 685, in round_trip_load\n    return load(stream, RoundTripLoader, version, preserve_quotes=preserve_quotes)\n  File "/usr/lib/python3/dist-packages/ruamel/yaml/main.py", line 636, in load\n    return loader._constructor.get_single_data()  # type: ignore\n  File "/usr/lib/python3/dist-packages/ruamel/yaml/constructor.py", line 102, in get_single_data\n    node = self.composer.get_single_node()\n  File "/usr/lib/python3/dist-packages/ruamel/yaml/composer.py", line 75, in get_single_node\n    document = self.compose_document()\n  File "/usr/lib/python3/dist-packages/ruamel/yaml/composer.py", line 96, in compose_document\n    node = self.compose_node(None, None)\n  File "/usr/lib/python3/dist-packages/ruamel/yaml/composer.py", line 132, in compose_node\n    node = self.compose_mapping_node(anchor)\n  File "/usr/lib/python3/dist-packages/ruamel/yaml/composer.py", line 194, in compose_mapping_node\n    item_value = self.compose_node(node, item_key)\n  File "/usr/lib/python3/dist-packages/ruamel/yaml/composer.py", line 132, in compose_node\n    node = self.compose_mapping_node(anchor)\n  File "/usr/lib/python3/dist-packages/ruamel/yaml/composer.py", line 187, in compose_mapping_node\n    while not self.parser.check_event(MappingEndEvent):\n  File "/usr/lib/python3/dist-packages/ruamel/yaml/parser.py", line 144, in check_event\n    self.current_event = self.state()\n  File "/usr/lib/python3/dist-packages/ruamel/yaml/parser.py", line 561, in parse_block_mapping_key\n    token.start_mark)\nruamel.yaml.parser.ParserError: while parsing a block mapping\n  in "/etc/ejabberd/ejabberd.yml", line 172, column 3\nexpected <block end>, but found \'<block mapping start>\'\n  in "/etc/ejabberd/ejabberd.yml", line 188, column 4\n')
Mar 04 12:20:01 freedombox /usr/bin/plinth[421]: # help get-logs
Mar 04 12:20:01 freedombox sudo[6509]:   plinth : TTY=unknown ; PWD=/ ; USER=root ; COMMAND=/usr/share/plinth/actions/help get-logs
Mar 04 12:20:01 freedombox sudo[6509]: pam_unix(sudo:session): session opened for user root by user(uid=0)