Possible to apply the same tag twice
Nobody has claimed this yet.
- Dominant language
- JavaScript
- Stars
- 1.4k
- Forks
- 354
- Avg merge
- 1d 10h
- Merged PRs (30d)
- 43
Description
Steps to reproduce
I don't know, but here's proof it has happened:

Note ➊ shows "Wait on clients" tag twice, and that ➋ shows +2 tags as well as the shown "Wait on clients".
Nb. this is not a duplicate of #586 which is about allowing users to create two tags with identical names. I only have one tag with this name, but it's somehow showing twice.
Nb. I also use the Android deck app.
nextcloud> select * from oc_deck_assigned_labels where label_id = 40 and card_id=209;
+-----+----------+---------+
| id | label_id | card_id |
+-----+----------+---------+
| 87 | 40 | 209 |
| 88 | 40 | 209 |
+-----+----------+---------+
Expected behaviour
It should not be possible to add the same tag twice.
Actual behaviour
Somehow I've ended up with the same tag being applied twice.
Server configuration detail
Operating system: Linux 4.19.0-9-amd64 #1 SMP Debian 4.19.118-2 (2020-04-29) x86_64
Webserver: nginx/1.14.2 (fpm-fcgi)
Database: mysql 10.3.27
PHP version:
7.3.27-1~deb10u1
Modules loaded: Core, date, libxml, openssl, pcre, zlib, filter, hash, Reflection, SPL, sodium, session, standard, cgi-fcgi, mysqlnd, PDO, xml, bcmath, calendar, ctype, curl, dom, mbstring, fileinfo, ftp, gd, gettext, gmp, iconv, igbinary, imagick, intl, json, exif, mysqli, pdo_mysql, Phar, posix, readline, redis, shmop, SimpleXML, sockets, sysvmsg, sysvsem, sysvshm, tokenizer, wddx, xmlreader, xmlwriter, xsl, zip, Zend OPcache, xdebug
Nextcloud version: 20.0.6 - 20.0.6.1
Updated from an older Nextcloud/ownCloud or fresh install:
Where did you install Nextcloud from: unknown
Signing status
Array
(
)
List of activated apps
Enabled:
- accessibility: 1.6.0
- activity: 2.13.4
- admin_audit: 1.10.0
- appointments: 1.8.1
- apporder: 0.11.0
- bookmarks: 4.0.8
- bruteforcesettings: 2.0.1
- calendar: 2.1.3
- cloud_federation_api: 1.3.0
- comments: 1.10.0
- contacts: 3.4.3
- contactsinteraction: 1.1.0
- cookbook: 0.7.10
- dashboard: 7.0.0
- dav: 1.16.2
- deck: 1.2.4
- duplicatefinder: 0.0.4
- federatedfilesharing: 1.10.2
- federation: 1.10.1
- files: 1.15.0
- files_external: 1.11.1
- files_fulltextsearch: 20.0.0
- files_linkeditor: 1.1.3
- files_pdfviewer: 2.0.1
- files_rightclick: 0.17.0
- files_sharing: 1.12.2
- files_trashbin: 1.10.1
- files_versions: 1.13.0
- files_videoplayer: 1.9.0
- firstrunwizard: 2.9.0
- fulltextsearch: 20.0.0
- fulltextsearch_elasticsearch: 20.0.0
- impersonate: 1.7.0
- integration_github: 0.0.17
- issuetemplate: 0.7.0
- logreader: 2.5.0
- lookup_server_connector: 1.8.0
- news: 15.2.2
- nextcloud_announcements: 1.9.0
- notes: 4.0.2
- notifications: 2.8.0
- oauth2: 1.8.0
- password_policy: 1.10.1
- passwords: 2020.12.2
- photos: 1.2.3
- polls: 1.7.5
- previewgenerator: 3.1.1
- privacy: 1.4.0
- provisioning_api: 1.10.0
- ransomware_protection: 1.8.0
- recommendations: 0.8.0
- serverinfo: 1.10.0
- settings: 1.2.0
- spreed: 10.0.5
- systemtags: 1.10.0
- tasks: 0.13.6
- text: 3.1.0
- theming: 1.11.0
- theming_customcss: 1.8.0
- twofactor_backupcodes: 1.9.0
- updatenotification: 1.10.0
- user_status: 1.0.1
- viewer: 1.4.0
- weather_status: 1.0.0
- workflowengine: 2.2.0
Disabled:
- encryption
- sharebymail
- support
- survey_client
- user_ldap
Configuration (config/config.php)
{
"instanceid": "***REMOVED SENSITIVE VALUE***",
"passwordsalt": "***REMOVED SENSITIVE VALUE***",
"secret": "***REMOVED SENSITIVE VALUE***",
"trusted_domains": [
"safe.artfulrobot.uk"
],
"datadirectory": "***REMOVED SENSITIVE VALUE***",
"overwrite.cli.url": "https:\/\/safe.artfulrobot.uk",
"dbtype": "mysql",
"version": "20.0.6.1",
"dbname": "***REMOVED SENSITIVE VALUE***",
"dbhost": "***REMOVED SENSITIVE VALUE***",
"dbport": "",
"dbtableprefix": "oc_",
"mysql.utf8mb4": true,
"dbuser": "***REMOVED SENSITIVE VALUE***",
"dbpassword": "***REMOVED SENSITIVE VALUE***",
"installed": true,
"htaccess.RewriteBase": "\/",
"overwritewebroot": "\/",
"theme": "",
"loglevel": 0,
"maintenance": false,
"updater.release.channel": "stable",
"mail_from_address": "***REMOVED SENSITIVE VALUE***",
"mail_smtpmode": "smtp",
"mail_domain": "***REMOVED SENSITIVE VALUE***",
"simpleSignUpLink.shown": false,
"mail_sendmailmode": "smtp",
"memcache.locking": "\\OC\\Memcache\\Redis",
"memcache.local": "\\OC\\Memcache\\Redis",
"memcache.distributed": "\\OC\\Memcache\\Redis",
"redis": {
"host": "***REMOVED SENSITIVE VALUE***",
"port": 0,
"dbindex": 0,
"password": "***REMOVED SENSITIVE VALUE***",
"timeout": 1.5
},
"app_install_overwrite": [
"fulltextsearch_elasticsearch"
],
"trashbin_retention_obligation": "365, auto"
}
Are you using external storage, if yes which one: local/smb/sftp/...
Are you using encryption:
Are you using an external user-backend, if yes which one: LDAP/ActiveDirectory/Webdav/...
Client configuration
Browser: Mozilla/5.0 (X11; Linux x86_64; rv:86.0) Gecko/20100101 Firefox/86.0
Contributor guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Research direction
No source files or tests are named. Start by tracing the Deck code paths that write to oc_deck_assigned_labels, including requests from the Android Deck app, and inspect how duplicate label_id/card_id rows can be created. Done means the same tag cannot be assigned twice and existing duplicate records are handled safely.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- android, javascript, mysql
- Domain
- backend, databases, mobile
- Issue type
- Bug
- Difficulty
- 4/5
- Estimated time
- 3-5 days
- Activity status
- Stale
- Clarity
- Mostly clear
- Newbie friendliness
- 30/100