One cannot enter ANY letters or special characters into "Custom user agent" field when configuring a flow with filter "Request user agent is/is not/matches/does not match Custom user agent"
When you try to write something it is immediately removed from that field (some active js filter). The most I was able to enter and keep for a moment there was one letter/one sign.
I've recorder my screen while trying do enter anything into that field:
https://www.veed.io/view/e8a3f2a4-b501-485a-9cb3-b8e1205d5812?panel=share
Steps to reproduce
Add any Admin flow.
Select any file trigger.
Add filter "Request user agent" /is/is not/matches/does not match "Custom user agent"
Try to enter anything into empty text field below dropdown with "Custom user agent" text.
Expected behavior
One should be able to enter a name of a custom user agent into the "Custom user agent" field (for example "Notability").
Installation method
Community Web installer on a VPS or web space
Nextcloud Server version
27
Operating system
Debian/Ubuntu
PHP engine version
PHP 8.1
Web server
Apache (supported)
Database engine version
MySQL
Is this bug present after an update or on a fresh install?
None
Are you using the Nextcloud Server Encryption module?
{"reqId":"ZVxuP2eovxTNAN7icLmGLAAAAAI","level":2,"time":"2023-11-21T08:45:51+00:00","remoteAddr":"46.170.99.138","user":"--","app":"core","method":"PROPFIND","url":"/remote.php/dav/files/ofcadmin/M2024-B10","message":"Session token is invalid because it does not exist","userAgent":"Microsoft-WebDAV-MiniRedir/10.0.19045","version":"27.1.3.2","exception":{"Exception":"OC\\Authentication\\Exceptions\\InvalidTokenException","Message":"Token does not exist: token does not exist","Code":0,"Trace":[{"file":"/var/www/html/lib/private/Authentication/Token/Manager.php","line":133,"function":"getToken","class":"OC\\Authentication\\Token\\PublicKeyTokenProvider","type":"->","args":["*** sensitive parameters replaced ***"]},{"file":"/var/www/html/lib/private/User/Session.php","line":782,"function":"getToken","class":"OC\\Authentication\\Token\\Manager","type":"->","args":["*** sensitive parameters replaced ***"]},{"file":"/var/www/html/lib/private/User/Session.php","line":352,"function":"validateToken","class":"OC\\User\\Session","type":"->","args":["*** sensitive parameters replaced ***"]},{"file":"/var/www/html/lib/private/User/Session.php","line":452,"function":"login","class":"OC\\User\\Session","type":"->","args":["*** sensitive parameters replaced ***"]},{"file":"/var/www/html/apps/dav/lib/Connector/Sabre/Auth.php","line":114,"function":"logClientIn","class":"OC\\User\\Session","type":"->","args":["*** sensitive parameters replaced ***"]},{"file":"/var/www/html/3rdparty/sabre/dav/lib/DAV/Auth/Backend/AbstractBasic.php","line":103,"function":"validateUserPass","class":"OCA\\DAV\\Connector\\Sabre\\Auth","type":"->","args":["*** sensitive parameters replaced ***"]},{"file":"/var/www/html/apps/dav/lib/Connector/Sabre/Auth.php","line":232,"function":"check","class":"Sabre\\DAV\\Auth\\Backend\\AbstractBasic","type":"->"},{"file":"/var/www/html/apps/dav/lib/Connector/Sabre/Auth.php","line":139,"function":"auth","class":"OCA\\DAV\\Connector\\Sabre\\Auth","type":"->"},{"file":"/var/www/html/3rdparty/sabre/dav/lib/DAV/Auth/Plugin.php","line":180,"function":"check","class":"OCA\\DAV\\Connector\\Sabre\\Auth","type":"->"},{"file":"/var/www/html/3rdparty/sabre/dav/lib/DAV/Auth/Plugin.php","line":135,"function":"check","class":"Sabre\\DAV\\Auth\\Plugin","type":"->"},{"file":"/var/www/html/3rdparty/sabre/event/lib/WildcardEmitterTrait.php","line":89,"function":"beforeMethod","class":"Sabre\\DAV\\Auth\\Plugin","type":"->"},{"file":"/var/www/html/3rdparty/sabre/dav/lib/DAV/Server.php","line":456,"function":"emit","class":"Sabre\\DAV\\Server","type":"->"},{"file":"/var/www/html/3rdparty/sabre/dav/lib/DAV/Server.php","line":253,"function":"invokeMethod","class":"Sabre\\DAV\\Server","type":"->"},{"file":"/var/www/html/3rdparty/sabre/dav/lib/DAV/Server.php","line":321,"function":"start","class":"Sabre\\DAV\\Server","type":"->"},{"file":"/var/www/html/apps/dav/lib/Server.php","line":365,"function":"exec","class":"Sabre\\DAV\\Server","type":"->"},{"file":"/var/www/html/apps/dav/appinfo/v2/remote.php","line":35,"function":"exec","class":"OCA\\DAV\\Server","type":"->"},{"file":"/var/www/html/remote.php","line":172,"args":["/var/www/html/apps/dav/appinfo/v2/remote.php"],"function":"require_once"}],"File":"/var/www/html/lib/private/Authentication/Token/PublicKeyTokenProvider.php","Line":163,"Previous":{"Exception":"OCP\\AppFramework\\Db\\DoesNotExistException","Message":"token does not exist","Code":0,"Trace":[{"file":"/var/www/html/lib/private/Authentication/Token/PublicKeyTokenProvider.php","line":172,"function":"getToken","class":"OC\\Authentication\\Token\\PublicKeyTokenMapper","type":"->","args":["*** sensitive parameters replaced ***"]},{"file":"/var/www/html/lib/private/Authentication/Token/Manager.php","line":133,"function":"getToken","class":"OC\\Authentication\\Token\\PublicKeyTokenProvider","type":"->","args":["*** sensitive parameters replaced ***"]},{"file":"/var/www/html/lib/private/User/Session.php","line":528,"function":"getToken","class":"OC\\Authentication\\Token\\Manager","type":"->","args":["*** sensitive parameters replaced ***"]},{"file":"/var/www/html/lib/private/User/Session.php","line":438,"function":"isTokenPassword","class":"OC\\User\\Session","type":"->","args":["*** sensitive parameters replaced ***"]},{"file":"/var/www/html/apps/dav/lib/Connector/Sabre/Auth.php","line":114,"function":"logClientIn","class":"OC\\User\\Session","type":"->","args":["*** sensitive parameters replaced ***"]},{"file":"/var/www/html/3rdparty/sabre/dav/lib/DAV/Auth/Backend/AbstractBasic.php","line":103,"function":"validateUserPass","class":"OCA\\DAV\\Connector\\Sabre\\Auth","type":"->","args":["*** sensitive parameters replaced ***"]},{"file":"/var/www/html/apps/dav/lib/Connector/Sabre/Auth.php","line":232,"function":"check","class":"Sabre\\DAV\\Auth\\Backend\\AbstractBasic","type":"->"},{"file":"/var/www/html/apps/dav/lib/Connector/Sabre/Auth.php","line":139,"function":"auth","class":"OCA\\DAV\\Connector\\Sabre\\Auth","type":"->"},{"file":"/var/www/html/3rdparty/sabre/dav/lib/DAV/Auth/Plugin.php","line":180,"function":"check","class":"OCA\\DAV\\Connector\\Sabre\\Auth","type":"->"},{"file":"/var/www/html/3rdparty/sabre/dav/lib/DAV/Auth/Plugin.php","line":135,"function":"check","class":"Sabre\\DAV\\Auth\\Plugin","type":"->"},{"file":"/var/www/html/3rdparty/sabre/event/lib/WildcardEmitterTrait.php","line":89,"function":"beforeMethod","class":"Sabre\\DAV\\Auth\\Plugin","type":"->"},{"file":"/var/www/html/3rdparty/sabre/dav/lib/DAV/Server.php","line":456,"function":"emit","class":"Sabre\\DAV\\Server","type":"->"},{"file":"/var/www/html/3rdparty/sabre/dav/lib/DAV/Server.php","line":253,"function":"invokeMethod","class":"Sabre\\DAV\\Server","type":"->"},{"file":"/var/www/html/3rdparty/sabre/dav/lib/DAV/Server.php","line":321,"function":"start","class":"Sabre\\DAV\\Server","type":"->"},{"file":"/var/www/html/apps/dav/lib/Server.php","line":365,"function":"exec","class":"Sabre\\DAV\\Server","type":"->"},{"file":"/var/www/html/apps/dav/appinfo/v2/remote.php","line":35,"function":"exec","class":"OCA\\DAV\\Server","type":"->"},{"file":"/var/www/html/remote.php","line":172,"args":["/var/www/html/apps/dav/appinfo/v2/remote.php"],"function":"require_once"}],"File":"/var/www/html/lib/private/Authentication/Token/PublicKeyTokenMapper.php","Line":89},"message":"Session token is invalid because it does not exist","user":"ofcadmin","exception":{},"CustomMessage":"Session token is invalid because it does not exist"}}
{"reqId":"ZVxuQWeovxTNAN7icLmGLQAAAAI","level":2,"time":"2023-11-21T08:45:53+00:00","remoteAddr":"46.170.99.138","user":"--","app":"core","method":"PROPFIND","url":"/remote.php/dav/files/ofcadmin/M2024-B10","message":"Session token is invalid because it does not exist","userAgent":"Microsoft-WebDAV-MiniRedir/10.0.19045","version":"27.1.3.2","exception":{"Exception":"OC\\Authentication\\Exceptions\\InvalidTokenException","Message":"Token does not exist: token does not exist","Code":0,"Trace":[{"file":"/var/www/html/lib/private/Authentication/Token/Manager.php","line":133,"function":"getToken","class":"OC\\Authentication\\Token\\PublicKeyTokenProvider","type":"->","args":["*** sensitive parameters replaced ***"]},{"file":"/var/www/html/lib/private/User/Session.php","line":782,"function":"getToken","class":"OC\\Authentication\\Token\\Manager","type":"->","args":["*** sensitive parameters replaced ***"]},{"file":"/var/www/html/lib/private/User/Session.php","line":352,"function":"validateToken","class":"OC\\User\\Session","type":"->","args":["*** sensitive parameters replaced ***"]},{"file":"/var/www/html/lib/private/User/Session.php","line":452,"function":"login","class":"OC\\User\\Session","type":"->","args":["*** sensitive parameters replaced ***"]},{"file":"/var/www/html/apps/dav/lib/Connector/Sabre/Auth.php","line":114,"function":"logClientIn","class":"OC\\User\\Session","type":"->","args":["*** sensitive parameters replaced ***"]},{"file":"/var/www/html/3rdparty/sabre/dav/lib/DAV/Auth/Backend/AbstractBasic.php","line":103,"function":"validateUserPass","class":"OCA\\DAV\\Connector\\Sabre\\Auth","type":"->","args":["*** sensitive parameters replaced ***"]},{"file":"/var/www/html/apps/dav/lib/Connector/Sabre/Auth.php","line":232,"function":"check","class":"Sabre\\DAV\\Auth\\Backend\\AbstractBasic","type":"->"},{"file":"/var/www/html/apps/dav/lib/Connector/Sabre/Auth.php","line":139,"function":"auth","class":"OCA\\DAV\\Connector\\Sabre\\Auth","type":"->"},{"file":"/var/www/html/3rdparty/sabre/dav/lib/DAV/Auth/Plugin.php","line":180,"function":"check","class":"OCA\\DAV\\Connector\\Sabre\\Auth","type":"->"},{"file":"/var/www/html/3rdparty/sabre/dav/lib/DAV/Auth/Plugin.php","line":135,"function":"check","class":"Sabre\\DAV\\Auth\\Plugin","type":"->"},{"file":"/var/www/html/3rdparty/sabre/event/lib/WildcardEmitterTrait.php","line":89,"function":"beforeMethod","class":"Sabre\\DAV\\Auth\\Plugin","type":"->"},{"file":"/var/www/html/3rdparty/sabre/dav/lib/DAV/Server.php","line":456,"function":"emit","class":"Sabre\\DAV\\Server","type":"->"},{"file":"/var/www/html/3rdparty/sabre/dav/lib/DAV/Server.php","line":253,"function":"invokeMethod","class":"Sabre\\DAV\\Server","type":"->"},{"file":"/var/www/html/3rdparty/sabre/dav/lib/DAV/Server.php","line":321,"function":"start","class":"Sabre\\DAV\\Server","type":"->"},{"file":"/var/www/html/apps/dav/lib/Server.php","line":365,"function":"exec","class":"Sabre\\DAV\\Server","type":"->"},{"file":"/var/www/html/apps/dav/appinfo/v2/remote.php","line":35,"function":"exec","class":"OCA\\DAV\\Server","type":"->"},{"file":"/var/www/html/remote.php","line":172,"args":["/var/www/html/apps/dav/appinfo/v2/remote.php"],"function":"require_once"}],"File":"/var/www/html/lib/private/Authentication/Token/PublicKeyTokenProvider.php","Line":163,"Previous":{"Exception":"OCP\\AppFramework\\Db\\DoesNotExistException","Message":"token does not exist","Code":0,"Trace":[{"file":"/var/www/html/lib/private/Authentication/Token/PublicKeyTokenProvider.php","line":172,"function":"getToken","class":"OC\\Authentication\\Token\\PublicKeyTokenMapper","type":"->","args":["*** sensitive parameters replaced ***"]},{"file":"/var/www/html/lib/private/Authentication/Token/Manager.php","line":133,"function":"getToken","class":"OC\\Authentication\\Token\\PublicKeyTokenProvider","type":"->","args":["*** sensitive parameters replaced ***"]},{"file":"/var/www/html/lib/private/User/Session.php","line":528,"function":"getToken","class":"OC\\Authentication\\Token\\Manager","type":"->","args":["*** sensitive parameters replaced ***"]},{"file":"/var/www/html/lib/private/User/Session.php","line":438,"function":"isTokenPassword","class":"OC\\User\\Session","type":"->","args":["*** sensitive parameters replaced ***"]},{"file":"/var/www/html/apps/dav/lib/Connector/Sabre/Auth.php","line":114,"function":"logClientIn","class":"OC\\User\\Session","type":"->","args":["*** sensitive parameters replaced ***"]},{"file":"/var/www/html/3rdparty/sabre/dav/lib/DAV/Auth/Backend/AbstractBasic.php","line":103,"function":"validateUserPass","class":"OCA\\DAV\\Connector\\Sabre\\Auth","type":"->","args":["*** sensitive parameters replaced ***"]},{"file":"/var/www/html/apps/dav/lib/Connector/Sabre/Auth.php","line":232,"function":"check","class":"Sabre\\DAV\\Auth\\Backend\\AbstractBasic","type":"->"},{"file":"/var/www/html/apps/dav/lib/Connector/Sabre/Auth.php","line":139,"function":"auth","class":"OCA\\DAV\\Connector\\Sabre\\Auth","type":"->"},{"file":"/var/www/html/3rdparty/sabre/dav/lib/DAV/Auth/Plugin.php","line":180,"function":"check","class":"OCA\\DAV\\Connector\\Sabre\\Auth","type":"->"},{"file":"/var/www/html/3rdparty/sabre/dav/lib/DAV/Auth/Plugin.php","line":135,"function":"check","class":"Sabre\\DAV\\Auth\\Plugin","type":"->"},{"file":"/var/www/html/3rdparty/sabre/event/lib/WildcardEmitterTrait.php","line":89,"function":"beforeMethod","class":"Sabre\\DAV\\Auth\\Plugin","type":"->"},{"file":"/var/www/html/3rdparty/sabre/dav/lib/DAV/Server.php","line":456,"function":"emit","class":"Sabre\\DAV\\Server","type":"->"},{"file":"/var/www/html/3rdparty/sabre/dav/lib/DAV/Server.php","line":253,"function":"invokeMethod","class":"Sabre\\DAV\\Server","type":"->"},{"file":"/var/www/html/3rdparty/sabre/dav/lib/DAV/Server.php","line":321,"function":"start","class":"Sabre\\DAV\\Server","type":"->"},{"file":"/var/www/html/apps/dav/lib/Server.php","line":365,"function":"exec","class":"Sabre\\DAV\\Server","type":"->"},{"file":"/var/www/html/apps/dav/appinfo/v2/remote.php","line":35,"function":"exec","class":"OCA\\DAV\\Server","type":"->"},{"file":"/var/www/html/remote.php","line":172,"args":["/var/www/html/apps/dav/appinfo/v2/remote.php"],"function":"require_once"}],"File":"/var/www/html/lib/private/Authentication/Token/PublicKeyTokenMapper.php","Line":89},"message":"Session token is invalid because it does not exist","user":"ofcadmin","exception":{},"CustomMessage":"Session token is invalid because it does not exist"}}
Additional info
Console error (Edge 119.0.2151.58):
NcActions.js:2 You need to fill either the text or the ariaLabel props in the button component. {text: undefined, ariaLabel: null} o {_uid: 177, _isVue: true, v_skip: true, _scope: e, $options: {…}, …}$attrs: (...)$children: [o]$createElement: ƒ (t,n,a,i)$el: button.button-vue.button-vue--icon-only.button-vue--vue-tertiary.action-item.action-item--single$listeners: (...)$options: {parent: o, _parentVnode: e, propsData: {…}, _parentListeners: {…}, _renderChildren: Array(1), …}$parent: o {_uid: 176, _isVue: true, v_skip: true, _scope: e, $options: {…}, …}$refs: {}$root: o {_uid: 5, _isVue: true, v_skip: true, _scope: e, $options: {…}, …}$scopedSlots: {$stable: false, $key: undefined, $hasNormal: true, icon: ƒ}$slots: {icon: Array(1)}$store: A {_committing: false, _actions: {…}, _actionSubscribers: Array(0), _mutations: {…}, _wrappedGetters: {…}, …}$vnode: e {tag: 'vue-component-24-NcButton', data: {…}, children: undefined, text: undefined, elm: button.button-vue.button-vue--icon-only.button-vue--vue-tertiary.action-item.action-item--single, …}v_skip: true_c: ƒ (t,n,a,i)_data: {ob: e}_directInactive: false_events: {focus: Array(1), blur: Array(1), click: Array(1)}_hasHookEvent: false_inactive: null_isBeingDestroyed: false_isDestroyed: false_isMounted: true_isVue: true_props: {…}_provided: {}_renderProxy: o {_uid: 177, _isVue: true, v_skip: true, _scope: e, $options: {…}, …}_scope: e {detached: true, active: true, effects: Array(1), cleanups: Array(0), parent: undefined, …}_self: o {_uid: 177, _isVue: true, v_skip: true, _scope: e, $options: {…}, …}_staticTrees: null_uid: 177_vnode: e {tag: 'button', data: {…}, children: Array(1), text: undefined, elm: button.button-vue.button-vue--icon-only.button-vue--vue-tertiary.action-item.action-item--single, …}_watcher: e {vm: o, deep: false, user: false, lazy: false, sync: false, …}ariaHidden: (...)ariaLabel: (...)disabled: (...)download: (...)exact: (...)href: (...)nativeType: (...)to: (...)type: (...)wide: (...)$data: (...)$isServer: (...)$props: (...)$ssrContext: (...)get $attrs: ƒ ()set $attrs: ƒ (t)get $listeners: ƒ ()set $listeners: ƒ (t)[[Prototype]]: si
render @ NcActions.js:2
e._render @ vue.runtime.esm.js:2684
a @ vue.runtime.esm.js:3875
e.get @ vue.runtime.esm.js:3446
e.run @ vue.runtime.esm.js:3522
Oa @ vue.runtime.esm.js:4121
(anonymous) @ vue.runtime.esm.js:3143
Dn @ vue.runtime.esm.js:3065
Promise.then (async)
_n @ vue.runtime.esm.js:3090
zn @ vue.runtime.esm.js:3155
Ma @ vue.runtime.esm.js:4207
e.update @ vue.runtime.esm.js:3513
e.notify @ vue.runtime.esm.js:720
set @ vue.runtime.esm.js:963
Ja.Xa.set @ vue.runtime.esm.js:5356
updateCustom @ RequestUserAgent.vue:119
yn @ vue.runtime.esm.js:3017
n @ vue.runtime.esm.js:1815
r._wrapper @ vue.runtime.esm.js:7473
⚠️ This issue respects the following points: ⚠️
Bug description
One cannot enter ANY letters or special characters into "Custom user agent" field when configuring a flow with filter "Request user agent is/is not/matches/does not match Custom user agent"
When you try to write something it is immediately removed from that field (some active js filter). The most I was able to enter and keep for a moment there was one letter/one sign. I've recorder my screen while trying do enter anything into that field: https://www.veed.io/view/e8a3f2a4-b501-485a-9cb3-b8e1205d5812?panel=share
Steps to reproduce
Expected behavior
One should be able to enter a name of a custom user agent into the "Custom user agent" field (for example "Notability").
Installation method
Community Web installer on a VPS or web space
Nextcloud Server version
27
Operating system
Debian/Ubuntu
PHP engine version
PHP 8.1
Web server
Apache (supported)
Database engine version
MySQL
Is this bug present after an update or on a fresh install?
None
Are you using the Nextcloud Server Encryption module?
None
What user-backends are you using?
Configuration report
List of activated Apps
Nextcloud Signing status
Nextcloud Logs
Additional info
Console error (Edge 119.0.2151.58):
NcActions.js:2 You need to fill either the text or the ariaLabel props in the button component. {text: undefined, ariaLabel: null} o {_uid: 177, _isVue: true, v_skip: true, _scope: e, $options: {…}, …}$attrs: (...)$children: [o]$createElement: ƒ (t,n,a,i)$el: button.button-vue.button-vue--icon-only.button-vue--vue-tertiary.action-item.action-item--single$listeners: (...)$options: {parent: o, _parentVnode: e, propsData: {…}, _parentListeners: {…}, _renderChildren: Array(1), …}$parent: o {_uid: 176, _isVue: true, v_skip: true, _scope: e, $options: {…}, …}$refs: {}$root: o {_uid: 5, _isVue: true, v_skip: true, _scope: e, $options: {…}, …}$scopedSlots: {$stable: false, $key: undefined, $hasNormal: true, icon: ƒ}$slots: {icon: Array(1)}$store: A {_committing: false, _actions: {…}, _actionSubscribers: Array(0), _mutations: {…}, _wrappedGetters: {…}, …}$vnode: e {tag: 'vue-component-24-NcButton', data: {…}, children: undefined, text: undefined, elm: button.button-vue.button-vue--icon-only.button-vue--vue-tertiary.action-item.action-item--single, …}v_skip: true_c: ƒ (t,n,a,i)_data: {ob: e}_directInactive: false_events: {focus: Array(1), blur: Array(1), click: Array(1)}_hasHookEvent: false_inactive: null_isBeingDestroyed: false_isDestroyed: false_isMounted: true_isVue: true_props: {…}_provided: {}_renderProxy: o {_uid: 177, _isVue: true, v_skip: true, _scope: e, $options: {…}, …}_scope: e {detached: true, active: true, effects: Array(1), cleanups: Array(0), parent: undefined, …}_self: o {_uid: 177, _isVue: true, v_skip: true, _scope: e, $options: {…}, …}_staticTrees: null_uid: 177_vnode: e {tag: 'button', data: {…}, children: Array(1), text: undefined, elm: button.button-vue.button-vue--icon-only.button-vue--vue-tertiary.action-item.action-item--single, …}_watcher: e {vm: o, deep: false, user: false, lazy: false, sync: false, …}ariaHidden: (...)ariaLabel: (...)disabled: (...)download: (...)exact: (...)href: (...)nativeType: (...)to: (...)type: (...)wide: (...)$data: (...)$isServer: (...)$props: (...)$ssrContext: (...)get $attrs: ƒ ()set $attrs: ƒ (t)get $listeners: ƒ ()set $listeners: ƒ (t)[[Prototype]]: si render @ NcActions.js:2 e._render @ vue.runtime.esm.js:2684 a @ vue.runtime.esm.js:3875 e.get @ vue.runtime.esm.js:3446 e.run @ vue.runtime.esm.js:3522 Oa @ vue.runtime.esm.js:4121 (anonymous) @ vue.runtime.esm.js:3143 Dn @ vue.runtime.esm.js:3065 Promise.then (async) _n @ vue.runtime.esm.js:3090 zn @ vue.runtime.esm.js:3155 Ma @ vue.runtime.esm.js:4207 e.update @ vue.runtime.esm.js:3513 e.notify @ vue.runtime.esm.js:720 set @ vue.runtime.esm.js:963 Ja.Xa.set @ vue.runtime.esm.js:5356 updateCustom @ RequestUserAgent.vue:119 yn @ vue.runtime.esm.js:3017 n @ vue.runtime.esm.js:1815 r._wrapper @ vue.runtime.esm.js:7473