why my code return always lott size faliure

Hi guys i tru to run this code new order (trade) but return me always {“code”:-1013,“msg”:“Filter failure: LOT_SIZE”}
but i controll also with exchange info and i use a right size (in test new oreder work )
my code

#!/bin/bash

# Dichiarazione di variabili globali
declare -g BinApiKey=""
declare -g BinSecretKey=""
declare -g BinIdApi=""

function _Init_Binance_ApiSecretIDData() {
    # Verifica se l'argomento (exchange_name) è stato passato alla funzione
    if [ -z "$1" ]; then
        echo "Errore: Nome exchange mancante."
        return 1
    fi

    # Nome dell'exchange desiderato
    exchange_name="$1"

    # Controlla se il secondo parametro è "DEBUG"
    if [ "$2" == "DEBUG" ]; then
        # Stampa gli echo solo se il secondo parametro è "DEBUG"
        echo "Debug mode attivato."
    fi

    # Nome del file del database SQLite
    db_file="ConfigDB.db"

    # Query SQL per estrarre i dati dell'exchange specificato
    query="SELECT ApiKey, SecreatKey, IDapi FROM key_exchange WHERE exchange = '$exchange_name';"

    # Esegui la query sul database e ottieni i risultati
    result=$(sqlite3 "$db_file" "$query")

    # Verifica se ci sono risultati
    if [ -n "$result" ]; then
        # Assegna i risultati alle variabili globali
        BinApiKey=$(echo "$result" | cut -d '|' -f 1)
        BinSecretKey=$(echo "$result" | cut -d '|' -f 2)
        BinIdApi=$(echo "$result" | cut -d '|' -f 3)

        if [ "$2" == "DEBUG" ]; then
            # Stampa gli echo solo se il secondo parametro è "DEBUG"
            echo "Dati dell'exchange $exchange_name:"
            echo "BinApiKey: $BinApiKey"
            echo "BinSecretKey: $BinSecretKey"
            echo "BinIdApi: $BinIdApi"
        fi
    else
        echo "Exchange $exchange_name non trovato nel database."
    fi
}

ServerBinance="https://api.binance.com/api/v3"

_Bin_New_Order() {
    local symbol=""
	local URLPART2=""
	
    # Recupero i dati per binance che trovo nelle variabili globali BinApiKey, BinSecretKey, BinIdApi
    _Init_Binance_ApiSecretIDData "binance"

    local apiUrl="$ServerBinance/"
    local RECVWINDOW=5000
    RECVWINDOW="recvWindow=$RECVWINDOW"
    local TIMESTAMP="timestamp=$(( $(date +%s) *1000))"
    
    # Inizializza valori di default
    local side=""
    local type=""
    local timeInForce=""
    local quantity=""
    local quoteOrderQty=""
    local price=""
    local newClientOrderId=""
    local strategyId=""
    local strategyType=""
    local stopPrice=""
    local trailingDelta=""
    local icebergQty=""
    local newOrderRespType=""

    # Verifica i parametri opzionali
    while [ "$#" -gt 0 ]; do
        case "$1" in
            "--symbol" )
                shift
                symbol="$1"
                ;;
            "--side" )
                shift
                side="$1"
                ;;
            "--type" )
                shift
                type="$1"
                ;;
            "--time-in-force" )
                shift
                timeInForce="$1"
                ;;
            "--quantity" )
                shift
                quantity="$1"
                ;;
            "--quote-order-qty" )
                shift
                quoteOrderQty="$1"
                ;;
            "--price" )
                shift
                price="$1"
                ;;
            "--new-client-order-id" )
                shift
                newClientOrderId="$1"
                ;;
            "--strategy-id" )
                shift
                strategyId="$1"
                ;;
            "--strategy-type" )
                shift
                strategyType="$1"
                ;;
            "--stop-price" )
                shift
                stopPrice="$1"
                ;;
            "--trailing-delta" )
                shift
                trailingDelta="$1"
                ;;
            "--iceberg-qty" )
                shift
                icebergQty="$1"
                ;;
            "--new-order-resp-type" )
                shift
                newOrderRespType="$1"
                ;;

            * )
                echo "Errore: Parametro non riconosciuto: $1"
                return 1
                ;;
        esac
        shift
    done

    # chiamata standard BUY/SELL limit market etc di una quantita di BNB al prezzo di (importante! quantita si riferisce al primo 
    # tiker quindi se passi BNB/USDT ,metti la quantita di BNB che vuoi )
    
# Verifica i parametri obbligatori
if [ "$symbol" ] && [ "$side" ] && [ "$type" ] && [ "$quantity" ] && [ "$price" ]; then
    URLPART2="symbol=$symbol&side=$side&type=$type&timeInForce=GTC&quantity=$quantity&price=$price"

    # Aggiungi newClientOrderId se presente
    if [ "$newClientOrderId" ]; then
        URLPART2="$URLPART2&newClientOrderId=$newClientOrderId"
    fi

    # Aggiungi newOrderRespType se presente
    if [ "$newOrderRespType" ]; then
        URLPART2="$URLPART2&newOrderRespType=$newOrderRespType"
    fi

    # for debug
    echo "$URLPART2"
fi

# chiamata standard BUY/SELL solo Market al meglio ma di una quantità in dollari
# se hai BNBUSDT se sei BNBETH saranno in ETH
if [ "$symbol" ] && [ "$side" ] && [ "$type" ] && [ "$quoteOrderQty" ]; then
    URLPART2="symbol=$symbol&side=$side&type=$type&quoteOrderQty=$quoteOrderQty"

    # Aggiungi newClientOrderId se presente
    if [ "$newClientOrderId" ]; then
        URLPART2="$URLPART2&newClientOrderId=$newClientOrderId"
    fi

    # Aggiungi strategyId se presente
    if [ "$strategyId" ]; then
        URLPART2="$URLPART2&strategyId=$strategyId"
    fi

    # Aggiungi newOrderRespType se presente
    if [ "$newOrderRespType" ]; then
        URLPART2="$URLPART2&newOrderRespType=$newOrderRespType"
    fi

    # for debug
    echo "$URLPART2"
fi

# chiamata per iceberg order
if [ "$symbol" ] && [ "$side" ] && [ "$type" ] && [ "$quantity" ] && [ "$price" ] && [ "$icebergQty" ]; then
    URLPART2="symbol=$symbol&side=$side&type=$type&timeInForce=GTC&quantity=$quantity&price=$price&icebergQty=$icebergQty"

    # Aggiungi newClientOrderId se presente
    if [ "$newClientOrderId" ]; then
        URLPART2="$URLPART2&newClientOrderId=$newClientOrderId"
    fi

    # Aggiungi strategyId se presente
    if [ "$strategyId" ]; then
        URLPART2="$URLPART2&strategyId=$strategyId"
    fi

    # Aggiungi newOrderRespType se presente
    if [ "$newOrderRespType" ]; then
        URLPART2="$URLPART2&newOrderRespType=$newOrderRespType"
    fi

    # for debug
    echo "$URLPART2"
fi

# Chiamata per iceberg order con eventuali newClientOrderId e strategyId e stopPrice
if [ "$symbol" ] && [ "$side" ] && [ "$type" ] && [ "$quantity" ] && [ "$price" ] && [ "$stopPrice" ]; then
    URLPART2="symbol=$symbol&side=$side&type=$type&timeInForce=GTC&quantity=$quantity&price=$price&stopPrice=$stopPrice"

    # Aggiungi newClientOrderId se presente
    if [ "$newClientOrderId" ]; then
        URLPART2="$URLPART2&newClientOrderId=$newClientOrderId"
    fi

    # Aggiungi strategyId se presente
    if [ "$strategyId" ]; then
        URLPART2="$URLPART2&strategyId=$strategyId"
    fi

    # Aggiungi newOrderRespType se presente
    if [ "$newOrderRespType" ]; then
        URLPART2="$URLPART2&newOrderRespType=$newOrderRespType"
    fi

    # for debug
    echo "$URLPART2"
fi

# Chiamata per iceberg order con eventuali newClientOrderId, strategyId, stopPrice e trailingStop
if [ "$symbol" ] && [ "$side" ] && [ "$type" ] && [ "$quantity" ] && [ "$price" ] && [ "$trailingStop" ]; then
    URLPART2="symbol=$symbol&side=$side&type=$type&timeInForce=GTC&quantity=$quantity&price=$price&trailingStop=$trailingStop"

    # Aggiungi newClientOrderId se presente
    if [ "$newClientOrderId" ]; then
        URLPART2="$URLPART2&newClientOrderId=$newClientOrderId"
    fi

    # Aggiungi strategyId se presente
    if [ "$strategyId" ]; then
        URLPART2="$URLPART2&strategyId=$strategyId"
    fi

    # Aggiungi newOrderRespType se presente
    if [ "$newOrderRespType" ]; then
        URLPART2="$URLPART2&newOrderRespType=$newOrderRespType"
    fi

    # for debug
    echo "$URLPART2"
fi


    QUERYSTRING="$URLPART2&$RECVWINDOW&$TIMESTAMP"
	SIGNATURE=$(echo -n "$QUERYSTRING" | openssl dgst -sha256 -hmac $BinSecretKey | cut -c 18-)
	SIGNATURE="signature=$SIGNATURE"
	PRE_URL="order?"


	# Utilizza curl e cattura l'output nella variabile response
    # curl with -v for debug 
    #response=$(curl -v -H "X-MBX-APIKEY: $BinApiKey" -X POST "$apiUrl$PRE_URL$URLPART2&$RECVWINDOW&$TIMESTAMP&$SIGNATURE")
    response=$(curl  -H "X-MBX-APIKEY: $BinApiKey" -X POST "$apiUrl$PRE_URL$URLPART2&$RECVWINDOW&$TIMESTAMP&$SIGNATURE")
    
	echo "$response"
	
	#for debug 
	#http_status="${response: -3}"
	#echo "Stato della richiesta HTTP: $http_status"

}



#-----------------  ESEMPI DI CHIAMATA  NEW ORDER (TRADE) ----------------------------------------------------------------------------------------------------------
# chiamata standard BUY/SELL limit market etc di una quantita di BNB al prezzo di (importante! quantita si riferisce al primo 
# tiker quindi se passi BNB/USDT ,metti la quantita di BNB che vuoi ) newOrderRespType=Set the response JSON. MARKET and LIMIT order types default to FULL, all other orders default to ACK.
_Bin_New_Order --symbol "BNBUSDT" --side "BUY" --type "LIMIT" --quantity "0.0527" --price "400" --new-order-resp-type "FULL"