# Error after update to Beet 1.4.9 "Plugin types defines flexible field danceable which has already been defined with another type."

**URL:** <https://discourse.beets.io/t/error-after-update-to-beet-1-4-9-plugin-types-defines-flexible-field-danceable-which-has-already-been-defined-with-another-type/904>\
**Category:** Help\
**Created:** [September 7, 2019, 8:20pm UTC](https://discourse.beets.io/t/error-after-update-to-beet-1-4-9-plugin-types-defines-flexible-field-danceable-which-has-already-been-defined-with-another-type/904 "2019-09-07T20:20:22Z")\
**Posts on this page:** 5\
**Page:** 1

<div class="post-metadata">

**Author:** ![janpeeters](https://yyz1.discourse-cdn.com/flex029/user_avatar/discourse.beets.io/janpeeters/32/182_2.png) [@janpeeters](https://discourse.beets.io/u/janpeeters)\
**Post date:** [September 7, 2019, 8:20pm UTC](https://discourse.beets.io/t/error-after-update-to-beet-1-4-9-plugin-types-defines-flexible-field-danceable-which-has-already-been-defined-with-another-type/904/1 "2019-09-07T20:20:22Z")

</div>

Hi, today I updated Beets to version 1.4.9 through the command:  
`pip install -U beets`

When I run  
`beet import -it`  
with the import path appended.

I get the following error

> ```
> Traceback (most recent call last):
> File "/Library/Frameworks/Python.framework/Versions/3.7/bin/beet", line 11, in <module>
> load_entry_point('beets==1.4.9', 'console_scripts', 'beet')()
> File "/Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/site-packages/beets/ui/ __init__.py", line 1266, in main
> _raw_main(args)
> File "/Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/site-packages/beets/ui/ __init__.py", line 1249, in _raw_main
> subcommands, plugins, lib = _setup(options, lib)
> File "/Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/site-packages/beets/ui/ __init__.py", line 1148, in _setup
> library.Item._types.update(plugins.types(library.Item))
> File "/Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/site-packages/beets/plugins.py", line 344, in types
> u'another type.'.format(plugin.name, field)
> beets.plugins.PluginConflictException: Plugin types defines flexible field danceable which has already been defined with another type.
> 
> ```

As far as I understand the error it has to do with a field in the Types plugin that has already defined differently but I have no idea where. I’ve read through the changelog but couldn’t find anything that pointed to a change regarding Types plugin.

Any ideas to fix this would be very welcome 🙂

Thanks, Jan

```
library: ~/Music/Beets/musiclibrary.db
directory: /Volumes/Tunez

import:
    write: yes
    copy: yes
    move: no
    link: no
    hardlink: no
    delete: no
    resume: ask
    incremental: no
    incremental_skip_later: no
    from_scratch: no
    quiet_fallback: skip
    none_rec_action: ask
    timid: no
    log:
    autotag: yes
    quiet: no
    singletons: no
    default_action: apply
    languages: []
    detail: no
    flat: no
    group_albums: no
    pretend: false
    search_ids: []
    duplicate_action: ask
    bell: no
    set_fields: {}

clutter: ["Thumbs.DB", ".DS_Store"]
ignore: [".*", "*~", "System Volume Information", "lost+found"]
ignore_hidden: yes

replace:
    '[\\/]': _
    '^\.': _
    '[\x00-\x1f]': _
    '[<>:"\?\*\|]': ''
    '\.$': _
    '\s+$': ''
    '^\s+': ''
    '^-': _
path_sep_replace: _
asciify_paths: false
art_filename: cover
max_filename_length: 0

aunique:
    keys: albumartist album
    disambiguators: albumtype year samplerate label catalognum albumdisambig releasegroupdisambig
    bracket: '()'

plugins: inline the lastgenre discogs chroma acousticbrainz fromfilename fetchart embedart ftintitle edit info missing types convert spotify plexupdate web smartplaylist
pluginpath: []
threaded: yes
timeout: 5.0
per_disc_numbering: no
verbose: 0
terminal_encoding:
original_date: no
artist_credit: no
id3v23: no
va_name: "Various Artists"

zero:
    fields: comments
    update_database: true

# Inline plugin template
item_fields:
  multidisc: 1 if disctotal > 1 else 0
  my_samplerate: round(samplerate / 1000)
  is_flac: 1 if format == "FLAC" else 0
album_fields:  
  format: |
       formatList = []
       for item in items:
           formatList.append(item.format)
       return formatList
  av_bitrate: |
       total = 0
       for item in items:
           total += item.bitrate
       return round(total / len(items) / 1000)
  album_bitdepth: |
       total = 0
       for item in items:
           total += item.bitdepth
       return round(total / len(items))
  album_samplerate: |
       total = 0
       for item in items:
           total += item.samplerate
       return round(total / len(items) / 1000)

ui:
    terminal_width: 80
    length_diff_thresh: 10.0
    color: yes
    colors:
        text_success: green
        text_warning: yellow
        text_error: red
        text_highlight: red
        text_highlight_minor: lightgray
        action_default: turquoise
        action: blue

format_item: $artist - $album - $title
format_album: $albumartist - $album
time_format: '%Y-%m-%d %H:%M:%S'
format_raw_length: no

sort_album: albumartist+ album+
sort_item: artist+ album+ disc+ track+
sort_case_insensitive: yes

paths:
  default: 'Albums/%the{$albumartist}/$album (%if{$original_year,$original_year}) %aunique{albumartist album year, albumdisambig}%if{$albumdisambig,($albumdisambig $year) }%if{$is_flac,($format $bitdepth-$my_samplerate),($format $av_bitrate)}/%if{$multidisc,$disc-}$track - $title'
  dancetrack:1: 'Singles Dance/$artist - $title (%if{$original_year,$original_year}) %aunique{albumartist album year, albumtype label catalognum albumdisambig}%if{$albumdisambig,($albumdisambig$ $year)}($bpm bpm)'
  artistsingles:1: 'Albums/%the{$albumartist}/$album/$title'
  custcomp:1: 'Compilations/$album/$track - $artist - $title'
  custcompmin:1: 'Compilations/$album/$artist - $title'
  singleton: 'Singles/$artist - $title %aunique{albumartist album year, albumtype label catalognum albumdisambig}%if{$albumdisambig,($albumdisambig$ $year)}'
  comp: 'Compilations/$album (%if{$original_year,$original_year}) %aunique{albumartist album year, albumtype label catalognum albumdisambig}%if{$albumdisambig,($albumdisambig $year) }%if{$is_flac,($format $bitdepth-$my_samplerate),($format $av_bitrate)}/%if{$multidisc,$disc-}$track - $artist - $title'

statefile: state.pickle

musicbrainz:
    host: musicbrainz.org
    ratelimit: 1
    ratelimit_interval: 1.0
    searchlimit: 5

match:
    strong_rec_thresh: 0.04
    medium_rec_thresh: 0.25
    rec_gap_thresh: 0.25
    max_rec:
        missing_tracks: medium
        unmatched_tracks: medium
    distance_weights:
        source: 2.0
        artist: 3.0
        album: 3.0
        media: 1.0
        mediums: 1.0
        year: 1.0
        country: 0.5
        label: 0.5
        catalognum: 0.5
        albumdisambig: 0.5
        album_id: 5.0
        tracks: 2.0
        missing_tracks: 0.9
        unmatched_tracks: 0.6
        track_title: 3.0
        track_artist: 2.0
        track_index: 1.0
        track_length: 2.0
        track_id: 5.0
    preferred:
        countries: []
        media: ['CD', 'Digital Media|File']
        original_year: no
    ignored: []
    required: []
    ignored_media: []
    ignore_data_tracks: yes
    ignore_video_tracks: yes
    track_length_grace: 10
    track_length_max: 30
    
chroma:
    auto: no
    
fetchart:
    auto: yes
    cautious: no
    cover_names: cover front art album folder
    minwidth: 290
    maxwidth: 1050
    sources: filesystem coverart amazon fanart albumart
    fanarttv_key: f923f8140fa18e02f2de4383519d09a
    
acoustid: 
    apikey: VqzdnliViG
   
embedart:
    auto: yes
    ifempty: no   
    
lastgenre:
    auto: yes
    canonical: no
    count: 1
    force: yes
    source: album
    whitelist: yes
    min_weight: 10
    fallback:
    separator: ', '
    prefer_specific: no
    
types:
    danceable: float
    mood_aggressive: float
    mood_happy: float
    chords_number_rate: float
    chords_scale: float
    key_strength: float
    average_loudness: float
    chords_changes_rate: float
    mood_electronic: float
    mood_sad: float
    mood_acoustic: float
    mood_party: float
    danceable: float
    mood_relaxed: float
    tonal: float
    av_bitrate: int
    my_samplerate: int
    bitdepth: int
    album_bitdepth: int
    album_samplerate: int
    
convert:
    dest: ~/Music/BeetExports
    command: ffmpeg -i $source -y -vn -aq 0 $dest    
    extension: mp3
    format: mp3
    never_convert_lossy_files: yes

plex:
    host: localhost
    port: 32400
    token: 4DupXNf2WUrFe7xcQGzW
    
lastfm:
    user: janpeeters
    
smartplaylist:
    playlist_dir: ~/Music/Playlists
    auto: yes
    playlists:
        - name: 'boniver.m3u'
          query: 'artist:"bon iver"'
          
spotify:
    mode: open
    show_failures: on
    tiebreak: first

```

---

<div class="post-metadata">

**Author:** ![adrian](https://yyz1.discourse-cdn.com/flex029/user_avatar/discourse.beets.io/adrian/32/4_2.png) [@adrian](https://discourse.beets.io/u/adrian)\
**Post date:** [September 7, 2019, 8:40pm UTC](https://discourse.beets.io/t/error-after-update-to-beet-1-4-9-plugin-types-defines-flexible-field-danceable-which-has-already-been-defined-with-another-type/904/2 "2019-09-07T20:40:24Z")

</div>

A recent release added built-in type declarations to the `acousticbrainz` plugin, so you no longer need those manual type declarations via the `types` plugin.

---

<div class="post-metadata">

**Author:** ![janpeeters](https://yyz1.discourse-cdn.com/flex029/user_avatar/discourse.beets.io/janpeeters/32/182_2.png) [@janpeeters](https://discourse.beets.io/u/janpeeters)\
**Post date:** [September 7, 2019, 8:57pm UTC](https://discourse.beets.io/t/error-after-update-to-beet-1-4-9-plugin-types-defines-flexible-field-danceable-which-has-already-been-defined-with-another-type/904/3 "2019-09-07T20:57:09Z")

</div>

Thanks for the fast response @adrian.  
Does that mean that I can remove all Types declarations like `danceable: float` in my config except the ones that I use for the inline plugin?  
Because I define e.g. `av_bitrate: int` among others.

---

<div class="post-metadata">

**Author:** ![adrian](https://yyz1.discourse-cdn.com/flex029/user_avatar/discourse.beets.io/adrian/32/4_2.png) [@adrian](https://discourse.beets.io/u/adrian)\
**Post date:** [September 7, 2019, 9:14pm UTC](https://discourse.beets.io/t/error-after-update-to-beet-1-4-9-plugin-types-defines-flexible-field-danceable-which-has-already-been-defined-with-another-type/904/4 "2019-09-07T21:14:13Z")

</div>

You can remove all the ones for the tags that come from the `acousticbrainz` plugin.

---

<div class="post-metadata">

**Author:** ![janpeeters](https://yyz1.discourse-cdn.com/flex029/user_avatar/discourse.beets.io/janpeeters/32/182_2.png) [@janpeeters](https://discourse.beets.io/u/janpeeters)\
**Post date:** [September 7, 2019, 9:49pm UTC](https://discourse.beets.io/t/error-after-update-to-beet-1-4-9-plugin-types-defines-flexible-field-danceable-which-has-already-been-defined-with-another-type/904/5 "2019-09-07T21:49:43Z")

</div>

Terrific thanks for the additional info.
