Search Issue Tracker

Fixed in 5.4.2

Votes

3

Found in

5.4.0f3

Issue ID

821796

Regression

Yes

[iOS] Amazon Web Services error on iOS

iOS

-

Steps to reproduce:
1) Open the attached project.
2) Build and deploy to an iOS device.

An error pops up in Xcode console:
AWS DEBUG ---- error during query: Supplied AttributeValue has more than one datatypes set, must contain exactly one of the supported datatypes. The service works fine in the Editor.

This error is shown when the project is built using IL2cpp, with Mono2x the build crashes.

Reproduced on:
5.5.0a5, 5.4.0p1

Did not reproduce:
5.3.6p2, 5.3.5f1

Comments (8)

  1. lensemark73

    May 22, 2021 13:44

    Amazon has been improving all the time

  2. r_cohen

    Sep 19, 2016 17:39

    Fixed in Unity 5.4.1f1!!!

  3. OleSviper

    Sep 01, 2016 22:54

    Same problem here, I captured the http requests and noticed that the attribute values of the request are different on iOS compared to Android.

    Android:
    {"AttributeUpdates":{"Something":{"Action":"PUT","Value":{"N":"1862"}}
    },"Key":{"ID":{"S":"10208494337789794"}
    },"ReturnValues":"NONE"
    ,"TableName":"MyTable"}

    iOS:
    {"AttributeUpdates":{"Something":{"Action":"PUT","Value":{"BOOL":false,"N":"1862"}}
    },"Key":{"ID":{"BOOL":false,"S":"10208494337789794"}
    },"ReturnValues":"NONE"
    ,"TableName":"MyTable"}

    Response on iOS from dynamodb:

    { "__type":"com.amazon.coral.validate#ValidationException"
    ,"message":"Supplied AttributeValue has more than one datatypes set, must contain exactly one of the supported datatypes"}

    So somehow there is a BOOL AttributeValue added, that should not be there.

  4. r_cohen

    Sep 01, 2016 16:01

    I just reinstalled Unity 5.4 and tried changing all my DynamoDBContext.LoadAsync() calls to IAmazonDynamoDB.GetItemAsync(). Exact same problem. Broken on iOS Unity but works normally on PC Unity and PC .Net.

    So, DynamoDB is still completely broken for iOS in the current version of Unity!

    Here's the error message & call stack, in case it helps:
    Supplied AttributeValue has more than one datatypes set, must contain exactly one of the supported datatypes at AWSSDK.Core
    UnityEngine.DebugLogHandler:Internal_Log(LogType, String, Object)
    UnityEngine.DebugLogHandler:LogFormat(LogType, Object, String, Object[])
    UnityEngine.Logger:Log(LogType, Object)
    UnityEngine.Debug:LogError(Object)
    <DDBLoadAsyncLowLevel>c__AnonStorey31`1:m__A(AmazonServiceResult`2)
    Amazon.Runtime.AmazonServiceCallback`2:Invoke(AmazonServiceResult`2)
    Amazon.DynamoDBv2.c__DisplayClass37_0:<GetItemAsync>b__0(AmazonWebServiceRequest, AmazonWebServiceResponse, Exception, AsyncOptions)
    System.Action`4:Invoke(T1, T2, T3, T4)
    Amazon.Runtime.Internal.UnityMainThreadDispatcher:ProcessRequests()
    Amazon.Runtime.Internal.UnityMainThreadDispatcher:Update()

  5. r_cohen

    Aug 27, 2016 00:30

  6. r_cohen

    Aug 17, 2016 00:44

    Like the OP, this is only referring to iOS builds. DynamoDB works fine on PC in all versions.

  7. r_cohen

    Aug 17, 2016 00:41

    I have been trying different Unity builds:

    5.4.0f3: DynamoDB broken
    5.3.6f1: DynamoDB broken
    5.3.5f1: DynamoDB works

  8. r_cohen

    Aug 16, 2016 20:17

    I'm also experiencing this when calling DynamoDBContext.LoadAsync.

    This is the error from AWS:
    Exception loading <class name>: Supplied AttributeValue has more than one datatypes set, must contain exactly one of the supported datatypes

    It works fine on the PC, and only comes up in iOS.

    I tried with multiple versions of the AWS SDK, but it happens in all versions.
    I am running Unity 5.4.0f3. This wasn't a problem in 5.3.x.

Add comment

Log in to post comment

All about bugs

View bugs we have successfully reproduced, and vote for the bugs you want to see fixed most urgently.