Unsupported or invalid search criteria

Help
elmentz
2012-11-23
2013-05-29
  • elmentz
    elmentz
    2012-11-23

    I keep getting the following error, when trying to browse my music folder with bubbleupnp for android:

    Unsupported or invalid search criteria
    

    Here's the relevant debug output:

    [2012/11/23 16:21:41] upnphttp.c:729: debug: SOAPAction: urn:schemas-upnp-org:service:ContentDirectory:1#Browse
    [2012/11/23 16:21:41] upnpsoap.c:1680: debug: SoapMethod: Browse
    [2012/11/23 16:21:41] upnpsoap.c:1220: debug: Browsing ContentDirectory:
     * ObjectID: 1$7
     * Count: 300
     * StartingIndex: 16
     * BrowseFlag: BrowseDirectChildren
     * Filter: *
     * SortCriteria: (null)
    [2012/11/23 16:21:41] upnpsoap.c:1295: debug: Browse SQL: SELECT o.OBJECT_ID, o.PARENT_ID, o.REF_ID, o.DETAIL_ID, o.CLASS, d.SIZE, d.TITLE, d.DURATION, d.BITRATE, d.SAMPLERATE, d.ARTIST, d.ALBUM, d.GENRE, d.COMMENT, d.CHANNELS, d.TRACK, d.DATE, d.RESOLUTION, d.THUMBNAIL, d.CREATOR, d.DLNA_PN, d.MIME, d.ALBUM_ART, d.DISC from OBJECTS o left join DETAILS d on (d.ID = o.DETAIL_ID) where PARENT_ID = '1$7'  limit 16, 300;
    [2012/11/23 16:21:41] sql.c:118: warn: sql_get_int_field: step failed: database disk image is malformed
    SELECT count(*) from OBJECTS where PARENT_ID = '1$7$368';
    [2012/11/23 16:21:41] sql.c:118: warn: sql_get_int_field: step failed: database disk image is malformed
    SELECT count(*) from OBJECTS where PARENT_ID = '1$7$36A';
    [2012/11/23 16:21:41] upnpsoap.c:1300: warn: SQL error: database disk image is malformed
    BAD SQL: SELECT o.OBJECT_ID, o.PARENT_ID, o.REF_ID, o.DETAIL_ID, o.CLASS, d.SIZE, d.TITLE, d.DURATION, d.BITRATE, d.SAMPLERATE, d.ARTIST, d.ALBUM, d.GENRE, d.COMMENT, d.CHANNELS, d.TRACK, d.DATE, d.RESOLUTION, d.THUMBNAIL, d.CREATOR, d.DLNA_PN, d.MIME, d.ALBUM_ART, d.DISC from OBJECTS o left join DETAILS d on (d.ID = o.DETAIL_ID) where PARENT_ID = '1$7'  limit 16, 300;
    [2012/11/23 16:21:41] upnpsoap.c:1740: warn: Returning UPnPError 709: Unsupported or invalid sort criteria
    [2012/11/23 16:21:41] upnphttp.c:1273: debug: HTTP RESPONSE: HTTP/1.1 500 Internal Server Error
    Content-Type: text/xml; charset="utf-8"
    Connection: close
    Content-Length: 420
    Server: Linux/2.6.38-6-ARCH DLNADOC/1.50 UPnP/1.0 MiniDLNA/1.0.25
    Date: Fri, 23 Nov 2012 22:21:41 GMT
    EXT:
    <s:Envelope xmlns:s="http://schemas.xmlsoap.org/soap/envelope/" s:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"><s:Body><s:Fault><faultcode>s:Client</faultcode><faultstring>UPnPError</faultstring><detail><UPnPError xmlns="urn:schemas-upnp-org:control-1-0"><errorCode>709</errorCode><errorDescription>Unsupported or invalid sort criteria</errorDescription></UPnPError></detail></s:Fault></s:Body></s:Envelope>
    

    This even happens after recreating the db by rescanning my librabry.

    Here's my minidlna.conf:

    # port for HTTP (descriptions, SOAP, media transfer) traffic
    port=8200
    # network interfaces to serve, comma delimited
    network_interface=eth0
    # set this to the directory you want scanned.
    # * if have multiple directories, you can have multiple media_dir= lines
    # * if you want to restrict a media_dir to a specific content type, you
    #   can prepend the type, followed by a comma, to the directory:
    #   + "A" for audio  (eg. media_dir=A,/home/jmaggard/Music)
    #   + "V" for video  (eg. media_dir=V,/home/jmaggard/Videos)
    #   + "P" for images (eg. media_dir=P,/home/jmaggard/Pictures)
    media_dir=A,/var/music
    media_dir=V,/var/video
    # set this if you want to customize the name that shows up on your clients
    friendly_name=solaris
    # set this if you would like to specify the directory where you want MiniDLNA to store its database and album art cache
    db_dir=/var/cache/minidlna
    # set this if you would like to specify the directory where you want MiniDLNA to store its log file
    log_dir=/var/log/minidlna
    # set this to change the verbosity of the information that is logged
    # each section can use a different level: off, fatal, error, warn, info, or debug
    log_level=general,artwork,database,inotify,scanner,metadata,http,ssdp,tivo=error
    # this should be a list of file names to check for when searching for album art
    # note: names should be delimited with a forward slash ("/")
    album_art_names=Cover.jpg/cover.jpg/AlbumArtSmall.jpg/albumartsmall.jpg/AlbumArt.jpg/albumart.jpg/Album.jpg/album.jpg/Folder.jpg/folder.jpg/Thumb.jpg/thumb.jpg
    # set this to no to disable inotify monitoring to automatically discover new files
    # note: the default is yes
    inotify=yes
    # set this to yes to enable support for streaming .jpg and .mp3 files to a TiVo supporting HMO
    enable_tivo=no
    # set this to strictly adhere to DLNA standards.
    # * This will allow server-side downscaling of very large JPEG images,
    #   which may hurt JPEG serving performance on (at least) Sony DLNA products.
    strict_dlna=no
    # default presentation url is http address on port 80
    #presentation_url=http://www.mylan/index.php
    # notify interval in seconds. default is 895 seconds.
    notify_interval=900
    # serial and model number the daemon will report to clients
    # in its XML description
    serial=12345678
    model_number=1
    # specify the path to the MiniSSDPd socket
    #minissdpdsocket=/var/run/minissdpd.sock
    # use different container as root of the tree
    # possible values:
    #   + "." - use standard container (this is the default)
    #   + "B" - "Browse Directory"
    #   + "M" - "Music"
    #   + "V" - "Video"
    #   + "P" - "Pictures"
    # if you specify "B" and client device is audio-only then "Music/Folders" will be used as root
    #root_container=.
    
     
  • Craig Chambers
    Craig Chambers
    2012-11-26

    First - how did you start the minidlna process?  Is it able to write to the /var/cache/ directory?

    If that's all OK…

    Do you only get this with BubbleUPnP or is it seen with other controllers/renderers? 
    I use this app as a controller, and I don't think I've ever seen this problem.

    In your log I can see the following which suggests something wrong with the DB: "sql_get_int_field: step failed: database disk image is malformed"

    It may be worth using something like sqlite3 to look at your database…

    e.g. sqlite3 /var/cache/minidlna/files.db "select * from details where path like '%.M2TS'"

    Replace '%.M2TS' with the file extension of your choice to view the entries for that file type.

    Or to get a count of objects in the Details table:

    sqlite3 /var/cache/minidlna/files.db "select count(*) from details"
    51358 

    if a GUI is more your choice, try sqlitebrowser:

    sqlitebrowser /var/cache/minidlna/files.db

    Select the Browse Data tab, then the DETAILS table.

    Another tool that you could use to troubleshoot is upnp-inspector.

    Regards,
    Craig